2014-01-04

Организация медиа-архива (видео)

Задача-минимум следующая:
  1. Создать раскадровку для всех видео из указанной папки.
  2. В браузере вывести ссылки на видео и соответствующие раскадровки под ними.
Задача-максимум на будущее:
  1. Многофункциональная галерея для всех видов медиа (видео, аудио, изображения).
Начнем с простого.
Для работы с видео будем использовать мощную библиотеку libav.
Далее буду приводить выдержки из скриптов с описаниями.

2013-11-17

Привязка ресурсов к своему домену

Иногда какой-то сервис перестает удовлетворять растущим запросам и настает необходимость его сменить, на более подходящего конкурента.
Но как быть с адресом?
Например, в почте появилось слишком много рекламы. Но email-адрес поменять не так-то просто. Ведь он где только не используется и сменить его везде становится затратно по времени.
Похожая ситуация с блогом: визуальный редактор не такой удобный, как в другой блогосистеме и рад бы переехать, да блог проиндексирован, а на отдельные записи могут быть размещены ссылки в разных частях интернета.
Напоминает ситуацию с сотовыми - хочется уйти к другому оператору, да на номер много чего завязано и все контакты надо оповещать.
Но, имея свой домен, вижу следующее решение: перенести почту и блог на свой адрес. Не сам фунционал сменить, а просто привязать ресурс к персональному домену. Google, Yandex, MailRu позволяют использовать их функционал почты на своем персональном домене, также Blogger и LiveJournal имеют аналогичную возможность. Для этого нужно только прописать специальные записи для домена и указать его адрес в настройках сервиса.
В конце-концов, если замучает парнанойя (а-а-а, за нами следят!), то всегда можно развернуть почтовый сервер и любой понравившийся блогодвижок на своем сервере. Легко и просто, уже без изменения домена. Разве что, при смене блогосистемы может измениться внутренняя адресация, но при наличии поиска внутри блога, это не такая уж и большая проблема. Да и записи нужно либо через экспорт-импорт перенести, либо как-то еще автоматизировать с помощью парсинга.

2013-11-14

Самые основы Reflection в C# .Net на примере исследования класса из DocsVision

Чтобы посмотреть какие методы, свойства и события предоставляет класс нужно:
1) Создать экземпляр класса и в IDE получить все в выпадающем списке.
2) Декомпилировать файл. К счастью, .NET проектами это очень легко проделывается.
3) Прочитать всю нужную информацию о классе с помощью Reflection.
Первый и второй вариант пройден и не считаю нужным их описывать, а вот Reflection для меня является чем-то новым, с чем я попробовал слегка разобраться.

2013-10-18

Поиск файлов и папок в консоли Linux

Иногда приходится пользоваться поиском в консоли Linux. Есть очень хорошая утилита find. Она позволяет искать по типу (файл, директория), размеру (как строго, так и с пределами), датам (строго или по периодам), шаблону имени и много еще чего.
В связи с подозрением на взлом FTP, в очередной раз возникла задача поиска: файлы по маске и некоторым признакам и содержимому. Нужно было найти web-shell`ы и то, что было залито с их помощью. Сначала были найдены образцы вредоносов, исследованы и составлена карта признаков для дальнейшего обнаружения аналогичных файлов в других папках.

2013-10-05

Использование векторной графики SVG на сайте

Попробовал слегка разобраться с возможностью использования векторной графики на сайте. В данной статье будет рассказано про поддержку браузерами SVG и про способы использования.

Порой векторный формат позволяет серьезно сэкономить на объеме ресурсов сайта по сравнению с растровой графикой.
Некоторые возможности SVG дублирует современный CSS 3. Например: фоны, градиенты, скругленные углы, анимация и некоторые другие возможности - можно реализовать с использованием обеих технологий. В каждом конкретном случае выбирается тот подход, который имеет лучшую поддержку браузерами, меньший объем кода реализации, проще в использовании.

2013-09-07

Бекапы на Yandex.Disk

Как говорится, люди делятся на тех, кто не делает бекапы и тех, кто уже делает.
Давно хотел настроить резервирование в облачное хранилище у себя на сервере, но не было времени разбираться с монтированием webdav.
Недавно вышел консольный клиент под Linux Yandex.Disk, оживился Redmine у меня сервере и я начал решать проблему с сохранностью важных данных Redmine, а потом уж по аналогии и все остальное можно будет резервировать.