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, а потом уж по аналогии и все остальное можно будет резервировать.

2013-09-06

Корзина и форма заказа на AngularJS и Twitter Bootstrap

Начнем с предыстории

Давно я что-то не писал в блог. А ведь столько всего произошло и продолжает происходить в мире информационных технологий.
Давно уже поверхностно знакомился с фрейворком для верстки Twitter Bootstrap и JavaScript-фреймворком для разработки веб-приложений AngularJS.
Очень интересные штуки и я просто мечтал выкроить время, чтобы хоть где-то на практике их использовать. И вот это день настал - ко мне обратился бывший сокурсник с просьбой разработать сайт интернет-магазин. Сайт ему нужен был полностью, от "а до я". Дизайнер из меня никакой, поэтому сразу в голову пришла идея - использовать готовое решение Twitter Bootstrap, на мой взгляд его компоненты выглядят достаточно приятно и современно, к тому же накануне вышла обновленная 3-я версия с серьезными переработками и улучшениями. Идея попробовать AngularJS пришла уже по ходу разработки функционала корзины.
Да, еще обратил внимание, что у меня блогозаписи практически не проиллюстрированы и поэтому воспринимаются хуже. Исправляюсь - теперь по возможности будет больше картинок. Неужто, красота Twitter Bootstrap дала мне понять насколько скучны мои посты с одним лишь текстом и вкраплениями кусков кода? :-)

2013-07-08

Небольшой опыт работы с LVM

Менеджер логических томов (англ. Logical Volume Manager) - менеджер логических томов операционных систем Linux и OS/2. LVM - это метод распределения пространства жёсткого диска по логическим томам, размер которых можно легко менять, в отличие от разделов.

Уже давно, когда приходится устанавливать Linux, даже если кажется, что раздел будет один, использую разбивку диска с LVM, ведь все может поменяться. Да и home в отдельном разделе - это удобно.
Базовые понятия LVM:
  • Физический том (англ. physical volume [PV]) - физический жесткий диск или раздел.
  • Группа томов (англ. volume group [VG]) - группа физических томов.
  • Логический том (англ. logical volume [LV]) - аналогичен разделу (hda1, sdb3, etc) на не-LVM системах. По привычке, ниже буду называть тома разделами.
Логические разделы можно перемещать по дискам, менять размеры, расширять один раздел на несколько физических дисков (лично мне особенно нравится такая возможность). Так же, пишут, что с LVM проще делать бекапы, но я с этим еще не разбирался. Полная свобода и масса возможностей по сравнению с обычными разделами.

2013-04-22

Веб-боты и защита от них

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

2013-03-31

Об IT-безопасности

Ага! Только что написал 12-ый пост в этот блог. В планах было рассказать интересную историю, недавно случившуюся на работе. Так пусть она будет постом под номером 13!

Сразу скажу, что никто особо не пострадал, хотя, могли и посадить злоумышленников.

2013-03-30

REST и разделение сервера и клиента

Intro/Trends

В IT-моду входит адаптивный дизайн. Ведь это раньше (давным-давно) у нас, разработчиков сайтов, был только один PC и IE5-6, под которые в основном и готовились сайты. А что сейчас? Куча платформ и разрешений/размеров экранов. Появились и средства для верстки под разные устройства - например, CSS-фича "@media-queries", по сути, ничего сложного, просто теперь необходимо писать отдельные стили под разные разрешения/размеры и ориентации экранов, рутина, одним словом.
В связи со всем этим назрела необходимость бОльшего разделения клиентской и серверной части. Лично я считаю, что имея кучу различных устройств, достаточно под каждое адаптировать клиентское приложение, а серверная часть должна для всех оставаться независимой, то есть возвращать сырые данные без отображения. REST нам в помощь.
Есть у меня старая CMS, ведь большинство разработчиков пробовали в начале карьеры писать свойские CMS и лишь у единиц получилось вывести их на рынок и начать зарабатывать или, хотя бы, сделать известными в мире Open Source. На этой самой морально устаревшей CMS я и решил попрактиковаться. Задача: реализовать REST API и простенькую админку.

2013-02-10

Облако на своем сервере - ownCloud

Наткнулся на интересный проект - http://owncloud.org/. Опишу здесь вкратце, что меня в нем зацепило.

Плюшки

ownCloud написан на php и позволяет развернуть облачное хранилище на своем сервере.

2013-01-07

Знакомство с физическими движками

Давно хотел поразбираться с физическими движками и вот, наконец-то, дошли руки. Все движки похожи друг на дружку, то есть оперируют одинаковыми понятиями - есть физический мир, разные виды тел с физическими характеристиками, соединения, коллизии и прочее. Отличаются API, платформами/языками реализации и возможностями.
Для примера выбрал box2dweb - javascript-клон другого популярного движка.
Начинаем подготовку - подключим на страницу библиотеку и создадим объект canvas, который будет отображать сотворенный нами физический мирок.