Настройка IPv6 роутера на Mandriva Linux

Целью статьи является сбор разрозненных сведений по настройке IPv6 роутера на базе Mandriva (а также в RedHat, Fedora и пр. дистрибутивах на базе RH). В этой статье я опишу как настроить и использовать IPv6 туннель для локальной сети. Настройка будет производиться на Mandriva Linux 2010.2 в качестве сервера и Windows XP в качестве клиентов.

Читать дальше →

Web-сервис «Хранение важных документов». Идея для стартапа

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

Создаем систему мониторинга большой сети удаленных филиалов своими руками

image
Задача: сделать эффективную и! бесплатную! систему мониторинга сети из ~50-60 Cisco маршрутизаторов и 80 серверов на платформе Windows 2003/2008, чтобы службе поддержки было видно когда что-либо падает, отваливаются службы на серверах, тунели на цисках, загруженность каналов и так далее.

Оборудование: Систему в общем то потянет любой сервер, тестировалась со всей этой сеткой она у меня на стареньком Celeron с 768Mb RAM, сейчас стоит на мощном Xeon'е с 8Gb оперативной памяти, но практически не ест ресурсов.

Программное обеспечение: CentOS 5 + Nagios + Cacti + Plugins
По желанию систему можно грузить еще чем-угодно, у меня например на ней же стоит форум phpBB3 использующийся как база знаний Техподдержки, файловая помойка и ssh терминалы.
Nagios был выбран как платформа для мониторинга доступности хостов по пингу, серверов на платформе Windows и сетевых принтеров HP. Cacti — в основном для мониторинга сети.

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

Описывать как устанавливать CentOS я не буду, в сети достаточно мануалов по этой теме, да и установка там сложностей не представляет. Единственное, что пожалуй добавлю — ставил его в редакции server. Скачать установщик можно тут.

Читать дальше →

Как устроить революцию через социальные сети

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

Однако даже Марк Цукерберг, когда-то создавая свою университетскую социальную сеть, вряд ли мог подумать о том, что Facebook может стать причиной настоящей революции в большой стране.

Читать дальше →

Некоторые подводные камни при использовании сессии

Рассмотрим типичный случай взаимодействия двух страниц в ASP.NET, одна из которых это таблица, а вторая это форма по редактированию записей: Grid и Edit. Кроме основной функции, Edit может также создавать новую запись, поэтому правильней будет назвать её Add/Edit.

Итак, какие сценарии у нас предусмотрены:
  • Редактирование существующей записи
  • Добавление новой записи


Читать дальше →

Вычисление MD5 хэша в .NET

Во время написания некого проекта на ASP.NET, мне понадобилось подключить к своему веб-сайту виджет авторизации ВКонтакте. Так как с JavaScript я вообще не знаком, а как таковых прямых примеров на подключение OpenAPI к веб-сайту я не нашел, возможно плохо искал, но скорее не было желания использовать чужую библиотеку, хотелось понять и изучить само подключение OpenAPI к моему веб-сайту. Я начал с тривиального, то-есть подключение виджета авторизации. Изучив небольшую документацию на сайте, принялся за дело.

Итак, я узнал, что last_name и прочие параметры передаются путем запросов. Собственно для проверки вошел ли пользователь используется зашифрованный MD5 хэш ID приложения, ID пользователя, и Secret key приложения. Отсюда логично то, что нужно путем обычных действий в C#, то-есть декодированием данного набора символов кодировкой UTF-8, вычислением хэша массива байтов и кодированием той-же кодировкой в string, получить зашифрованную строку. Но не тут то было…

Читать дальше →

Напоминания о днях рождения в iCal и iOS стандартными средствами с помощью AppleScript

В статье я опишу как на Mac OS X используя только встроенные средства системы настроить напоминания о днях рождения (стандартными средствами можно только отобразить календарь без напоминаний). Таже при желании можно воспользоваться результатом на iOS-устройстве.

Читать дальше →

«Именованные параметры» в Delphi

Иногда возникает ситуация, когда в функцию требуется передавать много различных параметров, но при этом необходимый набор этих параметров может сильно различаться. В таких случаях, для Delphi, как правило, есть несколько путей решения:
  1. Просто забить все возможные параметры в интерфейс функции.
  2. Сделать множество перегрузок функции на все случаи жизни.
  3. Передать параметры массивом.
  4. Воспользоваться обходным путём. Например, вынести параметры в класс и проставлять их перед вызовом функции.
Всё эти способы получаются довольно громоздкими в реализации и имеют массу недостатков. А самое главное, что над их реализацией необходимо думать в каждом конкретном случае отдельно — не существует простого общего решения.

В некоторых языках (Scala, Python, Ruby...) такой проблемы не стоит в принципе — там есть такая замечательная вещь как именованные параметры. В Delphi же приходится всегда следовать установленному порядку аргументов. Не спасают даже значения по-умолчанию (их не всегда можно применить из-за конфликта типов, к тому же их использование нередко приводит к путанице).

Однако, используя небольшую хитрость, в Delphi вполне можно написать, к примеру, вот так:

ProcessParams(Par('Param1', 'test') + Par('Param2', 38) + Par('Param3', 3.2));

При этом в функцию ProcessParams придёт массив из трёх записей, содержащих пару «имя — значение». Такая запись становится возможной благодаря модулю объёмом всего 40 строк:


Читать дальше →

GUI: Рекомендации по названию пунктов меню

Интерфейс практически любой программы включает в себя такой элемент графического интерфейса как меню. Меню программы представляет собой список состоящий из пунктов меню. Довольно часто пункт меню представляет собой команду программы. Иногда пункт меню может отображать состояния программы в определенный момент времени.

Назначение меню программы заключается в следующем: пользователь не должен помнить все команды программы, потому что он всегда знает откуда можно вызвать любую команду. По-сути меню — это справка по всем доступным действиям программы. Хороший способ ознакомиться с возможностями программы — это пройтись по всем пунктам меню.

Читать дальше →

Портал по управлению временем: первые шаги

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

Читать дальше →