Pull to refresh
0
0
Send message

Софтовый датчик присутствия на Linux AP + ESP8266

Reading time3 min
Views15K

Наблюдение за изменением уровня Wi-Fi сигнала от стационарно расположенных по дому IoT устройств позволяет сделать полностью программный (выделенное железо отсутствует) объёмный датчик движения в объёме квартиры, достаточно точно показывающий наличие активно перемещающихся людей.

Читать далее
Total votes 47: ↑47 and ↓0+47
Comments22

Библиотека для работы с iOS-пермишенами, от идеи до релиза (часть 1)

Reading time7 min
Views2.8K

• Каĸ унаследовать Swift-ĸласс не целиĸом, а лишь то в нём, что тебе нужно?

• Каĸ позволить юзеру твоей CocoaPods- или Carthage-библиотеĸи ĸомпилировать лишь те её части, что он действительно использует?

• Каĸ раздербанить ресурсы iOS, чтобы достать оттуда ĸонĸретные системные иĸонĸи и лоĸализованные строĸи?

• Каĸ поддержать completion blocks даже там, где это не предусмотрено дефолтным API системных разрешений?

Читать полностью
Total votes 6: ↑5 and ↓1+4
Comments3

Анатомия GNU/Linux

Reading time13 min
Views110K

Какое-то время назад на Хабре была небольшая волна постов на тему «Почему я [не] выбрал Linux». Как порядочный фанатик я стриггерился, однако решил, что продуктивнее что-нибудь рассказать о своей любимой системе, чем ломать копии в комментариях.

У меня сложилось впечатление, что многие пользователи GNU/Linux слабо представляют, из чего сделана эта операционная система, поэтому утверждают, что она сляпана из попавшихся под руку кусков. В то же время, архитектура большинства дистрибутивов является устоявшейся и регламентируется рядом стандартов, включая стандарт графического окружения freedesktop.org и Linux Standard Base, расширяющий стандарты Unix. Мне при знакомстве с GNU/Linux несколько лет назад для погружения не хватало простой анатомической карты типичного дистрибутива, поэтому я попробую рассказать об этом сам.

Читать далее
Total votes 161: ↑161 and ↓0+161
Comments137

Vulnhub. Прохождение Sunset: dawn

Reading time4 min
Views4.5K
Следующей машиной в нашей серии прохождений будет 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 порт используется сайтом, пожалуй, начнем с него.



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

Vulnhub. Прохождение Sunset: 1

Reading time3 min
Views7.4K
HackTheBox — популярная площадка среди специалистов информационной безопасности, проводящих тестирование на проникновение. Однако существуют не менее интересные CTF площадки для проверки и тренировки своих навыков, которые подойдут как начинающим, так и опытным пентестерам.

Одной из таких площадок как раз является Vulnhub. Правда, на этом ресурсе выкладывают только виртуальные машины, и там можно найти целые серии виртуальных машин. Сегодня мы поговорим о серии Sunset и рассмотрим первую ВМ (sunset: 1).


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

Подключаем новый Xiaomi Gateway 3 к Home Assistant без паяльника и смс

Reading time5 min
Views111K

Новый хаб от Xiaomi с поддержкой технологий Zigbee 3, Bluetooth Mesh, HomeKit и его подключение к достаточно популярной системе умного дома — Home Assistant, интересует?


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

В нативный код из уютного мира Java: путешествие туда и обратно (часть 1)

Reading time18 min
Views29K


Java и другие управляемые языки просты и удобны во многих случаях, но иногда их возможностей недостаточно — например, если нужна библиотека, написанная только на C или C++. Иногда хочется позвать пару методов из системного API, или попытаться улучшить производительность для модуля — и тогда прямой путь в нативный код.


Но тут возникают подводные камни: написать нативный метод и вызвать библиотеку может быть и легко, но JVM начинает крашиться в случайных местах, производительность падает, сборщик мусора перестает справляться с работой, а в репозитории царствуют бесконечные C-шные файлы с буквами JNI. Что же могло пойти не так?


Иван Углянский (dbg_nsk) из Huawei разбирается со всем по порядку: что необычного в интеропе между Java и нативным кодом, как оно работало раньше и что нужно делать для их нормальной совместной работы (и можно ли это вообще сделать). Иван рассказывает, как избежать просадок производительности, внезапных OOM и размышляет на тему будущего — в контексте проектов Panama и Sulong.


Мы подготовили текстовую версию доклада о работе с нативами в Java. В первой части:


  • Зачем вообще работать с нативным кодом в Java.
  • С какими ошибками и проблемами придётся столкнуться при работе с нативами.

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


Далее — повествование от лица спикера.

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

Делаем станцию мониторинга загрязнённости воздуха в домашних условиях

Reading time6 min
Views29K

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

Читать далее
Total votes 37: ↑34 and ↓3+31
Comments69

Кодинг без рук: что делать, если лишился своего основного рабочего инструмента

Reading time9 min
Views44K


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

Как можно понять, это достаточно серьёзная проблема: я разработчик ПО, и вся моя карьера зависит от возможности пользования клавиатурой!

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

В этой статье я расскажу о том, как выглядит мой рабочий процесс и как я оптимизировал его под свои нужды.
Total votes 139: ↑139 and ↓0+139
Comments61

Распечатанный четвероногий робот под управлением Arduino

Reading time7 min
Views8.4K


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

Основной целью данного проекта было сделать систему достаточно надёжную для того, чтобы во время эксперимента с различными походками мне бы не приходилось волноваться о возможных отказах оборудования. Это позволило мне испытывать робота на пределе возможности, задавая ему сложные походки и разные движения. Дополнительная цель состояла в том, чтобы сделать относительно недорогой прототип, использующий готовые компоненты, и 3D-печать для быстрого прототипирования. Совместно две этих цели дают надёжную основу для проведения различных экспериментов и разработки более специализированных четвероногих роботов с более конкретными целями – навигация, обход препятствий, динамическая адаптация движения.
Total votes 17: ↑15 and ↓2+13
Comments5

Wi-Fi для мамы

Reading time11 min
Views39K

Постановка задачи


Сделать Wi-Fi в 2+ комнатной квартире, при этом чтобы скорость в любой локации была не ниже 90Мбит/с на любом современном мобильном устройстве (IEEE 802.11ac).

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

  1. Условный Просто пользователь (используем базовый ЯндексDNS)
  2. Условная Боящаяся интернета бабушка (ЯндексDNS, без мошеннических сайтов и вирусов)
  3. Условный Студент 5 курса, которому нужен Интернет без ограничений (выход в Интернет через VPN в Европу, DNS 8.8.8.8)
  4. Условный Школьник 7 класса, которому по административным причинам надо выключать Интернет в 21:00 час по будням и в 22:00 часа по выходным (используем ЯндексDNS «Семейный» и по расписанию выключаем/включаем SSID).


Радио моделирование


Начну с того, что как правило, если в квартире бетонные стены и количество комнат 2 и более, то одной точкой доступа Wi-Fi будет не обойтись, ведь 20 Мбит/с на диване у окна сегодня нас уже не устраивают, а это значит что минимальный уровень сигнала на клиенском устройстве долже быть не ниже -65дБ.

Вот пример:
Ставим одну точку доступа в прихожей, в 5 ГГц диапазоне зона покрытия до -65дБ выглядит так:

image image
Поэтому надо добавить еще как минимум 2 точки доступа, получаем следующее:

image image
image

Так уже лучше, с количеством и расположением точек доступа определились.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments173

Интеграция нативной рекламы Admob в ListView

Reading time21 min
Views15K
Весной 2015 года в рамках Google Admob был анонсирован новый для них способ отображения рекламных блоков, а именно Native ads (далее нативная реклама), который на текущий момент действует в режиме бета-релиза. Плюс нативной рекламы – это высокая адаптивность к дизайну приложения, которая позволяет показать рекламу таким образом, чтобы она не бросалась в глаза и не мешала работе с приложением. В статье будут отмечены определенные моменты, которые возникли в процессе интеграции Admob Native Ads в собственное приложение (пример того, что получилось показан на картинке, названия удалены), а также приведен практический пример с фрагментами кода (полный вариант при желании можно загрузить и посмотреть тут.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments12

Разработчики мобильных приложений и Appodeal – три примера сотрудничества

Reading time10 min
Views15K


Сегодня компания Appodeal представляет интервью с разработчиками, которые расскажут о своем опыте монетизации приложений. Соответственно, интервью разделено на три части, каждая из которых – это отдельный диалог. У всех – разные приложения, разное количество пользователей и различные доходы. Объединяет разработчиков одно – все они решили использовать наш сервис. Разговор поможет многим, особенно еще не вовлеченным в создание приложений, оглянуться по сторонам и посмотреть на чужой опыт.

Интервью построено в таком формате: «Q» – это вопросы основного интервьюера, а «I» – ответы собеседников. Надеемся, что этот материал пригодится нашим читателям в ежедневной работе.
Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments11

Время материализоваться: конкурс по Material Design от Google

Reading time3 min
Views24K
Привет, Хабрахабр! Сегодня у нас для вас очень приятные новости. Как вы все, наверное, знаете, в Android 5.х и его последователе, Android 6.0 Marshmallow используется новое оформление. Концепция Material Design была представлена на Google I/O 2014 и получила позитивный отклик не только среди дизайнеров и разработчиков приложений, но и среди пользователей.



На сегодняшний день более 200 тысяч приложений в Google Play переработаны с учётом гайдлайнов по Material Design. Если и вы уже обновили свое приложение в Google Play до Material Design или же планируете это сделать в ближайщее время, то принимайте участие в конкурсе по Material Design, который стартовал на этой неделе и продлится до 15 ноября. Разыгрываем: размещение вашего приложения в разделе featuring магазина Google Play, билеты на ежегодную конференцию Google I/O и планшеты Nexus 9. Мы выберем по три лучших приложения в трёх категориях. Подробности в правилах конкурса.
А вот как мы можем вам помочь в подготовке к конкурсу
Total votes 29: ↑29 and ↓0+29
Comments17

19 советов по повседневной работе с Git

Reading time14 min
Views285K


Если вы регулярно используете Git, то вам могут быть полезны практические советы из этой статьи. Если вы в этом пока новичок, то для начала вам лучше ознакомиться с Git Cheat Sheet. Скажем так, данная статья предназначена для тех, у кого есть опыт использования Git от трёх месяцев. Осторожно: траффик, большие картинки!

Содержание:
  1. Параметры для удобного просмотра лога
  2. Вывод актуальных изменений в файл
  3. Просмотр изменений в определённых строках файла
  4. Просмотр ещё не влитых в родительскую ветку изменений
  5. Извлечение файла из другой ветки
  6. Пара слов о ребейзе
  7. Сохранение структуры ветки после локального мержа
  8. Исправление последнего коммита вместо создания нового
  9. Три состояния в Git и переключение между ними
  10. Мягкая отмена коммитов
  11. Просмотр диффов для всего проекта (а не по одному файлу за раз) с помощью сторонних инструментов
  12. Игнорирование пробелов
  13. Добавление определённых изменений из файла
  14. Поиск и удаление старых веток
  15. Откладывание изменений определённых файлов
  16. Хорошие примечания к коммиту
  17. Автодополнения команд Git
  18. Создание алиасов для часто используемых команд
  19. Быстрый поиск плохого коммита

Читать дальше →
Total votes 152: ↑149 and ↓3+146
Comments62

Трудности и радости разработки первой игры на андроид

Reading time3 min
Views32K
image

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

Предыстория


Начнем с того, что меня зовут Евгений, мне 26 лет. Всю свою сознательную жизнь я пытался сделать игру. В детстве это были самодельные настольные игры с кубиками; в юности попытки разобраться в бейсике и программах для создания игр на ZX Spectrum; в подростковом возрасте, до того как у меня появился персональный компьютер, я придумывал и рисовал лабиринты, в которых можно было собирать ключи, убивать врагов и т.д.
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments34

Vector Drawable API. Возможности применения

Reading time12 min
Views54K
2014 год был особенным для всех, кто занимается разработкой под Android — он принес одно из самых значимых обновлений Android за всю его историю, версию Android 5.0. С этим обновлением мы получили новый визуальный язык, детальные гайдлайны, множество новых API и инструментов. И, как всегда в случае таких массивных обновлений, не все новшества сразу пробивают себе дорогу в реальные проекты. Где-то мешает инерция мышления разработчиков, привыкших решать определенные задачи определенным образом, где-то — отсутствие документации по новым API, где-то — отсутствие поддержки новых возможностей на старых версиях платформы. Но время не стоит на месте и благодаря труду команды Android, а также независимых разработчиков, такие API постепенно обретают обратную поддержку. И сегодня я хочу рассказать об API векторной графики Android, который способен серьезно облегчить жизнь разработчика, но при этом до сих пор не пользуется популярностью.

векторный Android


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

Видеонаблюдение загородом посредством 3G интернета

Reading time8 min
Views116K
Появилась такая задача: Установить видеонаблюдение, в 15 км от города, где доступен только gprs интернет.
Условия:
  • Камерами можно будет управлять через интернет
  • Ограниченный бюджет
  • В городе есть 3G интернет но в области нет.
  • Сотовые операторы не дают «Белый и статический ip адрес».
  • Другого интернета нет.


Что бы решить данную задачу я решил построить такую сеть.
Взять самый дешевый сервер VDS. Недорогой роутер TP-LINK MR 3420, 3G модем от beeline, ip камеру. И построить такую сеть как на схеме.
Суть идеи такова: На сервере поднимается openvpn сервер, на роутере поднимается openvpn клиент, далее объединяем локальную сеть с сетью openvpn. Затем пробрасываем необходимые порты на сервере.


Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments18

Vim как не IDE

Reading time5 min
Views24K
Очень давно хотел написать что-нибудь полезное, но не знал, чем можно поделится, и тут наткнулся на очередную статью про рассуждения, что же все-таки лучше — vim, emacs или IDE? Сначала я хотел написать сравнение IDE и vim, но слишком мало пользовался IDE и боюсь быть необъективным. Поэтому просто опишу причины, по которым использую vim. Просто чтобы показать, что редакторы занимают свою нишу. Также попробую рассказать о проблемах, с которыми я столкнулся, используя vim, и как я их решал.
Читать дальше →
Total votes 29: ↑24 and ↓5+19
Comments80

Information

Rating
Does not participate
Registered
Activity