Как стать автором
Обновить
5
0
Николай М. @Sauron

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

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

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

Время на прочтение6 мин
Количество просмотров55K
Идея использовать одноплатный миникомпьютер 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.

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

Java 8: от PermGen к MetaSpace

Время на прочтение3 мин
Количество просмотров82K
(Сокращённый перевод статьи Пьера-Хьюза Шарбонне)

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

Подробнорсти под катом.
Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии26

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

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

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

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

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

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

Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии21

Информация

В рейтинге
Не участвует
Откуда
Львовская обл., Украина
Зарегистрирован
Активность