пятница, 30 августа 2013 г.

Замета Total Commander'а в Linux

Из всех увиденных, больше всего понравилась Krusader. В Ubuntu можно установить из репозитория.

Программы для создания шрифтов для LibGDX

  • BMFont -- программа только под Windows, но может запускаться под Линуском через Wine. Возникла проблема в связи с тем, что цвет фона выставляет черный.
  • Hiero -- java программа, более удобна чем первая и генерирует изображение с прозрачным фотом.

четверг, 29 августа 2013 г.

Сборка Vacuum-IM 1.2.2

Сборку выполнял в Qt Creator 1.3.1 в Ubuntu 10.4 под Qt 4.6, а так же в Qt Creator'е более новой версии в Ubuntu 12.04 под Qt 4.8. Процесс и ошибки одни и те же.
Для сборки потребовалось установить библиотеку libxss-dev как написано здесь. После этого сборка проходит успешно.
После сборки необходимо создать правильную иерархию каталогов в соответствии с константами PLUGINS_DIR, RESOURCES_DIR, TRANSLATIONS_DIR определенными в файле loader/config/config.inc.
Если теперь запустить программу ./vacuum, то получим ошибку:
vacuum: error while loading shared libraries: libvacuumutils.so.1: cannot open shared object file: No such file or directory.
Чтобы от нее избавиться нужно создать в директории /etc/ld.so.conf.d файл vacuum.conf содержащий путь к директории с библиотекой libvacuumutils.so.1
cd /etc/ld.so.conf.d
sudo -s
echo путь_к_дирректории_с_библиотекам > vacuum.conf
Чтобы применился новый конфигурационный файл vacuum.conf нужно вызвать команду:
ldconfig
Теперь все должно работать.

X11/extensions/scrnsaver.h: Нет такого файла или каталога

sudo apt-get install libxss-dev

среда, 14 августа 2013 г.

Востроизведение видео/фото/музыки на телевизоре с ноутбука

Соверменные телевизоры поддерживают воспроизведение мультемедийного контента (видео, музыки, фото) с компьютера с помощую запущенного на компьютера медиасервера.

Рассмотрим как это делается на примере телевизора Philips 42PFL6008S/60.

Этот телевизор поддерживает как Wi-Fi так и проводное соединение с сетью. С проводным соединением все просто, поэтому рассмотрим беспроводное подключение к сети.

Если у вас нету Wi-Fi роутера, то необходимо настроить ноутбук как Wi-Fi точку доступа. Для этого существует прогрмма mHotspot. Устанавливаете её, запускаете и указваете как точка доступа будет назваться и код для подключения к ней. Также она позволяет указать максимальное разрешенное количество подключений к ней. Нажимает Start Hotspot и ноутбует становится виден для тебевизора.

Теперь необходимо установить программу медиасервер на ноутбук. Я попробовал их несколько, больше всех понравился Домашний медиа-сервер. После установки потребуется указать папки в котрых содержатся видео/музыка/фото. В зависимости от количества файлом процедура их добавления в базу данных программы может занять достаточно много времени.

После этого можно запустить медиасервер и перейти к настройки телевизора.

Работа со временем и датами в PHP

Для работы со временим и датами в PHP 5.2 и выше существует класс DateTime. Он заменяет функционал старых функций для работы со времением/датами.
Чтобы получить текущую дату/время нужно создать объект DateTime без передачи ему параметров.

$now = new DateTime(); 

Для получения объекта DateTime из строки содержащей время существует статический метод createFromFormat(string $format, string $time). Первый параметр - формат передаваемой даты/времени. Второй параметр - строка содаржащая дату/время в формате, переданном в первом параметре %)

Формат даты/времени может выглядеть например так:

Y-m-d H:i:s

что означает запись например такого вида:

2009-02-15 15:16:17.

В приведенной выше строке формата латинские буквы означают следующее:

  • Y -- запись года четырьмя цыфрами (например 2013);
  • m -- запись месяца двумя цыфрами с 01 по 12 (например 07);
  • d -- день месяца двумя цыфрами с 01 по 31;
  • H -- запись часа в 24-ох часовом формате двумя цыфрами с 00 до 23;
  • i -- минуты с нулем в начале;
  • s-- секунды с нулем в начале.

Существуют так же следующие символы формата даты/времени:

  • D и l -- текстовое представление дня месяца (От Mon до Sun либо от Sunday до Saturday);
  • z -- номер дня с начала года;
  • F и M -- текстовое представление месяца, например January или Sept;
  • y -- 2 цифровое представление года (например 03 -- это 2003 год);
  • a и A -- до полудня и После полудня (am или pm);
  • g и h -- 12-ти часовой формат времени с первым нулем или без него.

Для обратного преобразования объекта DateTime в строку существует метод format(string $format). В качестве параметра принимает строку с форматом даты/времени (таким же как в методе createFromFormat).

Для того чтобы вычесть или добавить в дате/времени какой-либо интервал времени (например 2 часа или 3 месяца), нужно воспользоваться методом add(DateInterval $interval) или sub(DateInterval $interval). ВАЖНО: Преобразование применяется к объекту для которого вызавается метод. В качестве параметров эти методы принимают объект класса DateInterval.

В качестве параметра конструктор этого класса принимает строку с интревалом времени в формате из спецификации ISO 8601. В соответсвии с ней: строка с интервалом времени начинается с латинсткой буквы P. Длина каждого периода описывается целым значением и следующим за ним указателем периода. Если длина периода содержит время, то его описанию должна предшествовать буква T. Например 2 дня записываются так -- P2D. Две секунды -- PT2S. Допустимы следующие обозначения интервалов:

  • Y -- года;
  • M -- месяцы;
  • D -- дни;
  • W -- недели;
  • H -- часы;
  • M -- минуты;
  • S -- секунды.

Помимо конструктора создать объект интервала времени можно с помощью статического метода DateInterval::createFromDateString(string $time). Он принимает в качестве параметра строку с интервалом времени в более читаемом виде. Например:
1 day
2 weeks
3 months
и даже
1 year + 1 day
1 day + 12 hours.


Таким образом благодаря классу DateTime работа с датами и временем в PHP не вызывает сложностей.