Пишем простое клиент-серверное приложение на Perl

В этой статье я рассмотрю создание простого чата на Perl. Чат будет состоять из консольного сервера и клиента с GUI на основе Tk. Для начала реализуем серверную часть.
В серверной части мы не будем использовать процессы или потоки, а вместо этого воспользуемся мультиплексированием. Мультиплексирование довольно просто реализуется с помощью модуля IO::Select, который является классом-оболочкой над системной функцией select.
Функция select позволяет определить готовность дескриптора к записи/чтению. Также стоит отметить, что при использовании select следует избегать использования блокирующих вызовов, как, например, print, read, вместо них необходимо использовать syswrite, sysread.
Читать далее «Пишем простое клиент-серверное приложение на Perl»

Simple AJAX Chat

Написал простой движок немодерируемого чата на php+javascript.

Возможности:
[+] Вход в чат под выбранным никнеймом
[+] Смена никнейма
[+] Список участников
[+] Действия с участниками, аналогично mIRC
[+] Команда /me
[+] Смайлы
[+] Антифлуд
[+] Поддержка модулей (в движке уже есть несколько написанных для примера - время, транслитератор, печать строки наоборот, получение случайной цитаты с bash.org.ru, получение погоды, отображение списка модулей, отображение списка смайлов, курсы валют, определение PR и ТИЦ сайта)
[+] Возможность включить базовую авторизацию, что позволяет как организовать публичный чат, так и приватный для какой-то группы людей
[+] Приватные сообщения
[+] Функции для администрирования чата

Чат имеет множество настроек, все они находятся в начале файла index.php. После настройки чата необходимо сохранить этот файл в UTF-8 без BOM.

Немного документации:

1. Установка
Установка не требуется. Достаточно просто скопировать все файлы и папки на хостинг и дать права на запись файлов в папке plltxe (кроме .htaccess).
Настройки чата находятся в файле index.php в секции CONFIG.

2. Команда /me
Введите в чат
/me статус
для отображения своего статуса в окне чата.

3. Модули
Для вывода всех подключенных модулей введите /list
Модуль используется так: /имя_модуля необязательный_параметр
Например:
admin (23:50:46 23/03/2010): /currency
Курсы валют: USD: 29.3389 rub; EUR: 39.6339 rub
admin (23:51:18 23/03/2010): /weather москва
Погода: Москва: +1..+3, Давление: 747, Ветер: З, 5 - 9 м/с

4. Администраторские команды
Если вы администратор чата, войдите под произвольным никнеймом и введите:
/pass пароль_администратора
Пароль должен быть задан в самом скрипте в секции настроек.

После успешной авторизации будут доступны следующие команды:
/admin [Вася] rename Вася Пупкин
переименует пользователя Вася в Вася Пупкин

/admin [Вася] delete
Удалит пользователя Вася из чата и заблокирует текущую сессию

/admin [Вася] banip
Заблокирует IP-адрес пользователя

/admin [127.0.0.1] unbanip
Разблокирует адрес 127.0.0.1

/admin [Вася] getip
Выведет IP-адрес пользователя Вася

/admin [banlist]
Выведет список заблокированных IP-адресов

/admin [clear]
Очистит кэш чата

Рабочий пример чата тут: Simple AJAX Chat

Скачать: ZIP