Pull to refresh
5
0
Николай М. @Sauron

User

Send message

Raspberry Pi как информационное табло — с помощью VNC на localhost

Reading time6 min
Views55K
Идея использовать одноплатный миникомпьютер Raspberry Pi в качестве информационного табло не нова, однако, как мне кажется, раскрыта далеко не полностью. Одним из не достаточно раскрытых аспектов, по моему мнению, является ограничение доступа. Безусловно, самым надежным способом ограничения доступа является физическое ограничение — для каких-нибудь публичных табло (к примеру на остановках маршрутного транспорта) такое ограничение необходимо, иначе не избежать вандализма, краж (если не самого Raspberry Pi то как минимум SD карты) или «спуффинга» (путем подмены той же SD карты).

Но предположим что речь идет не о совсем публичном табло, а о таком, которое расположенном внутри офиса какой-нибудь компании — к примеру о «билд мониторе» для отображения статуса билдов на каком-нибудь Дженкинсе или ТимСити. Было бы неплохо ограничить возможность молодым горячим джуниорам открывать на билд мониторе порносайты. Об этом и пойдет речь.

Т.к. информационное табло работает, вероятно, не в режиме терминала, а с GUI, для управления ним логично использовать VNC (с ssh туннелем для пущей безопасности). Суть освновной идеи вкратце сводится к тому, что для отображения информации на табло можно использовать VNC viewer в view-only режиме, запущенный от имени пользователя с ограниченными правами. Таким образом подключив к Малинке клавиатуру и мышь нельзя будет «просто так взять» и помешать работе вашего табло. Конечно, знатоки линуксов всегда найдут обходные пути, но по крайней мере пользователей Windows это гарантированно отпугнет (-:

Тоесть вкратце задача сводится к следующему — при запуске Raspberry Pi:
  • Автоматически запускать VNC сервер от имени заданного пользователя (хотя бы того же pi);
  • Автоматически запускать VNC просмотрщик, настроенный на отображение происходящего на локальном VNC сервере, от имени заданного ограниченного пользователя (какого-нибудь guest);
  • Автозапуск какого-нибудь софта, отображающего собственно контент (например, веб-браузера показывающего Дженкинс), и отключение скринсейвера.

Сразу оговорюсь — знатоком Линукс я ни в коей мере не являюсь, поэтому подход может быть неполноценным и «нубским» — за это сразу прошу прощения. Инструкция составлялась по принципу «с миру по нитке» на основе других инструкций — так сказать «от нубов для нубов». Вобщем ногами не бейте плз.

И еще одна ремарка — в данной статье предполагается использование Raspbian (Debian Wheezy) в качестве ОС для Raspberry Pi.

Итак, пошаговая инструкция по достижению результата.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments4

Java 8: от PermGen к MetaSpace

Reading time3 min
Views82K
(Сокращённый перевод статьи Пьера-Хьюза Шарбонне)

Как уже сообщалось ранее на Java One, в Java 8 версии HotSpot планируется отказаться от PermGen пространства в пользу новой его вариации — Metaspace. Ранний доступ к JDK 8 даёт возможность наблюдать Metaspace в действии, чем и воспользовался автор оригинальной статьи чтоб узнать, какие преимущества даёт MetaSpace в сравнении с PermGen, и убедится во всём непосредственно.

Подробнорсти под катом.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments26

Программный дебаг Java-приложений посредством JDI

Reading time6 min
Views18K
Введение

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

Например, иногда для того чтоб «мониторить» состояние какой-то переменной, меняющейся в цикле, я использовал условный брейкпойнт, условием к которому был код вроде «System.out.println(theVariable); return false». Этот хак позволял получить лог значений переменной практически не прерывая работы приложения (она, естественно, всё-таки прерывалась на время выполнения кода условия, но не более). Плюс, нередко при просмотре каких-нибудь данных через вид Display порядком раздражало то, что результат евалюейшна кода в Display введённого добавлялся тут же после него.

В общем хотелось получить возможность делать всё то же самое например через Bean Shell или Groovy Shell, что в принципе аналогично программному дебагу. По логике это не должно было быть сложно — ведь делает же это как-то сам Eclipse, верно?

Проведя некоторый рисёрч я смог получить доступ к отладочной информации JVM программно, и спешу поделится примером.

Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments21

Information

Rating
Does not participate
Location
Львовская обл., Украина
Registered
Activity