Pull to refresh
-2
0
Максим @Maxima

User

Send message

Jabber-бот для Openfire за час

Reading time10 min
Views16K


Вот уже порядка двух лет я занимаюсь разработкой ботов для ICQ. После ряда недавних событий, из-за которых ICQ-боты часто оказывались неработоспособными, а также после статьи Знакомство с jabber ботами, у меня возникло стойкое желание изучить вопросы, связанные с разработкой ботов для Jabber.
В данном посте я хочу поделиться с вами своим первым опытом в данной области. Расскажу как с нуля, потратив всего один час времени, написать простого Jabber-бота.
В качестве платфомы для разработки бота я выбрал Openfire. На выбор повлияло то, что Openfire написан на Java (изучать что-нибудь типа Python совершенно не хотелось). Плагинная структура Openfire позволяет быстро и удобно прикрутить к нему функционал бота. Кроме того, Openfire прост в настройке, и к тому времени уже был установлен в качестве моего jabber-сервера.
Итак, приступим

А ты сделал бэкап?

Reading time4 min
Views16K
Доброго времени суток %habrauser%!

Как известно backup — must be! Но просто сделать архив данных — это еще не значит грамотный бэкап. Когда у наших клиентов начали появляться сервера на базе Calculate directory server встал вопрос о выборе средств для создания резервных копий данных. Поиск готовых решений ничего толкового не дал, поэтому пришлось писать самим.
Backup - это легко

Стартап Интернет-магазина часть2 (оплата и доставка)

Reading time9 min
Views9.9K
В этой статье продолжение темы стартапа интернет-магазина и на сей раз речь пойдет об оплате и доставке. Из комментариев к прошлой статье стало ясно, что уважаемые хабравчане желают видеть больше цифр, поэтому постараюсь сделать эту статью более прозрачной в плане понимания затрат и острых углов.
Итак…
Читать дальше →

GnuPG: Безопасная почта для Win, Mac и *nix

Reading time3 min
Views30K
GnuPGGnuPG (GNU Privacy Guard ) — открытая реализация PGP, совместимая со стандартами OpenPGP ( RFC 2440 ). GnuPG позволяет шифровать, расшифровывать, подписывать и верифицировать электронные сообщения при помощи пар ключей ( RSA по-умолчанию ). Наиболее частое применение GnuPG — в шифровании электронной почты и проверки подписи файлов, выложенных для скачивания. Но есть возможность использовать и в других протоколах: например, PSI (Jabber-клиент) поддерживает GnuPG и позволяет поточно шифровать переговоры.

Рассмотрим установку и первичную настройку GnuPG для трёх ОС: Windows, Mac OS X и Linux.
Подразумевается, что читатель имеет достаточные знания для того, чтобы выполнить несколько команд в консоли ОС (CMD/Terminal/xterm соответственно).

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

Nginx + серверный Javascript

Reading time7 min
Views10K

… или как перейти с PHP + JavaScript на JavaScript + JavaScript


Идея реализовать проект на сервер-сайд JavaScript была уже давно. Проблема была в отсутствии подходящего серверного программного обеспечения. Существующие открытые проекты не устраивали по разным причинам. Устанавливать дополнительный модуль для Apache было не самой хорошей идеей, потому что производительность и оптимизация использования памяти при этом были бы не на высоте. С помощью jslibs можно настроить FastCGI, но очень не хотелось оставлять ни малейших шансов «502 Bad Gateway», проект ngx_http_js_module так и остался в зачаточной стадии, а ngxv8 недостаточно развит для реализации реальных приложений. Поэтому я решил сделать собственную реализацию серверного javascript. Причем постараться сразу запрограммировать всю базовую функциональность, чтобы можно было ее тестировать в условиях, близких к реальности.

В качестве основного веб-сервера было решено использовать nginx, в качестве «движка» javascript — TraceMonkey (javascript-движок из Mozilla Firefox, бывший SpiderMonkey), и написать модуль для nginx, который бы их «склеил». Ничего сложного, на первый взгляд, но очень хотелось иметь определенную функциональность (и это получилось!), чтобы можно было нормально работать дальше. Большинство идей заимствованы, кстати, из PHP.
  • Корректная работа в multi-thread условиях
  • Возможность выполнять скрипт, указанный в URL, а не настраивать отдельно скрипт-обработчик и функцию-обработчик для каждого location
  • Возможность вызывать include(), sleep(), alert() из скрипта, использовать __FILE__ и __LINE__
  • Ограничение памяти, выделяемой каждому скрипту, и времени работы скрипта
  • Защита открываемых скриптом файлов, указав в настройках список разрешенных папок. Примерно как open_basedir в PHP
  • Автоматический разбор данных запроса (параметров GET, POST, и, конечно же, cookies), чтобы не писать обработку данных на javascript
  • Поддержка запросов application/x-www-form-urlencoded и multipart/form-data
  • Поддержка basic-авторизации
  • Работа с базами данных (в первую очередь, MySQL и SQLite)
  • Работа с файловой системой: чтение и запись файлов, проверка существования файлов, и т.п.
  • Кэширование байт-кода скриптов, как, например, в eAccelerator
Плюс некоторые другие возможности (инструменты для шаблонизации, для создания конфигурационных файлов, и т.п.), но их в основной список я не включил — их позволяют сделать языковые возможности TraceMonkey.

От слов — к делу! Как скомпилировать и настроить, как протестировать и сравнить...

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

Yate — SIP-телефония дома или в офисе за 5 минут!

Reading time3 min
Views42K
Все вокруг обсуждают Asterisk и его форки, для крупных компаний предлагают использовать Cisco или Avaya, но почему-то практически нигде нет информации о Yate — простом и удобном, но, в то же время, очень функциональном решении для IP-телефонии.

В этой статье я хотел бы кратко рассказать о сборке Yate под Linux, а также его первоначальной настройке для работы с SIP.
Читать дальше →

ModX и Drupal: разные истории

Reading time5 min
Views12K
До знакомства с CMS ModX планировалась статья сравнения этих двух систем, особенно после появления темы «Сравнение Drupal, MODx (и других систем) в рабочем проекте» на drupal.ru где предлагалось соревнования что выяснить какая система лучше.
После небольшого знакомства с МодХ все вопросы отпадают сами собой и ни о каком сравнении не может быть и речи.

Начнем с того что эти две CMS используются для различных целей и они не взаимозаменяемы. Друпал предназначен для сайтов мини-портал и выше, в то время как МодХ я классифицирую как хороший конструктор сайтов визиток. Область применения МодХ заканчивается на сайтах имеющих статьи и новости одновременно. И заводить спор о том что из МодХ можно создать сайты крупнее и даже крупный портал, тоже верно, но и с сопоставимыми временными затратами можно создать этот крупный портал с нуля.

Зато МодХ отлично делает сайты визитки, имеет свой менеджер загрузки файлов, имеет встроенный редактор TinyMCE, многоязычный интерфейс администратора, понятный мастер установки и много чего другого. И в тоже время делать сайты визитки на Друпале немного неправильно, сам факт выделения 64Мб оперативной памяти для сайта визитки на 20 страниц и хостинг для этого «проекта» может вызвать истерический смех у многих веб-разработчиков.

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

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

Интернет-магазин внутри баннера

Reading time4 min
Views1.1K
Все мы давно привыкли к рекламным баннерам на любимых нами сайтах. Некоторые из них скромно помигивают в углу страницы, другие же навязчиво предлагают нажать на них, внезапно появляясь в центре экрана и надоедая (да, именно надоедая) анимацией. Прошло время, когда красивые эффекты могли ввести пользователя в ступор и заставить кликнуть по рекламному объявлению, эффективность сисек и прочих сомнительных маркетинговых ходов тоже резко снизилась, ведь пользователи эволюционировали. Сейчас они кликают на баннере только если им действительно интересно то, что он продаёт.

В распоряжении веб-разработчиков находится масса технологий, с помощью которых были сделаны gmail, facebook и множество других замечательных сервисов, но почему до сих пор баннеры — это всего лишь электронная вывеска-замануха, и не более? Мы решили сделать баннер, который не просто завлекает на сайт, но сам продаёт.
Читать дальше →

Тест Мобильного телевидения Билайн и Yota ТВ

Reading time8 min
Views14K
image

Судя по обсуждениям ТВ-программ в интернете, представители прогрессивной части человечества обожают к месту и не к месту бравировать тем, что они не смотрят телевизор. Ну что ж, отныне телевизор можно не смотреть не только дома, но и в пути — прекрасная возможность стать еще прогрессивней. Любезно предоставлена она московскими операторами связи — Билайном и Yota. Эти компании недавно запустили в Москве вещание цифрового телевидения по технолгии DVB-H. Я испытал оба решения и спешу поделиться впечатлениями.
Читать дальше →

Новый PHP-мануал

Reading time1 min
Views7.2K
image

Всем, кто программирует на PHP, я предлагаю воспользоваться новым мануалом. Со времени его прошлого релиза произошли полезные изменения, которые были сделаны по заявкам хабравчан:
  • Быстрый поиск. Достаточно приписать к адресу мануала запрос. Например, http://manual.pohape.ru/str_replace
  • Кнопки «Назад» и «Печать»
  • Иерархические ссылки к каждой странице. Например, зайдя на страницу с описанием числа pi, можно быстро перейти на её родительские страницы: функции и математические функции
  • Был подправлен css страниц мануала, выкинуто лишнее, теперь они больше «дышат»
  • Suggest в списке функций был переписан. Теперь нету неприятных косяков, да и некоторые браузеры могут работать быстрее

Для тех, кто раньше не знал ничего об этом мануале, я освещу его основные преимущества:
  • Дизайн в стиле chm-справки понравится тем, кто успел привыкнуть к такой версии в ОС Windows
  • Английская версия мануала вмещает больше статей, чем её chm-аналог
  • Русская версия вообще стала раритетом, так как её более полугода назад убрали с php.net. В мануале же она присутствует.
  • Нет проблем с русским языком в интерфейсе, какие наблюдались с chm-файле
  • Для каждой страницы присутствуют комментарии с сайта php.net


Спасибо всем, кто вступал в переписку, указывал на косяки.
Все найденные баги и фючер реквесты новой версии я готов принять в комментариях либо по почте pohape.ru@pohape.ru

Пользуйтесь на здоровье, адрес прежний: http://manual.pohape.ru/

Как сделать приложение, которое будет нравиться пользователям

Reading time7 min
Views1.8K
В этом хабратопике я бы хотел описать несколько моментов, которые, по моему мнению, помогут начинающим (и не только) программистам писать приложения, которые пользователи будут любить и пользоваться ими с большим удовольствием.

Предисловие


К сожалению, как и везде, по-настоящему хорошие и удобные программы можно встретить довольно редко, что лично меня, как программиста, обычно очень расстраивает. Поэтому я решил написать эту статью в надежде, что хотя бы среди читателей Хабрахабра, которые занимаются разработкой программного обеспечения, качество их приложений вырастет. Я не рассматриваю создание софта с точки зрения получения коммерческой выгоды, я в этом не очень силён :). Поэтому, возможно, некоторые озвученные здесь советы могут оказаться вредными в применении к коммерческому софту. Тем не менее, если вы разрабатываете Open Source или бесплатный софт, то озвученные советы могут вам помочь в улучшении качества своих продуктов и улучшения собственной квалификации как программиста.
Читать дальше →

Рисуем объёмные изображения в Inkscape

Reading time1 min
Views9.9K
Inkscape — относительно молодой, но прогрессивный векторный редактор общего плана (как Adobe Illustrator и Corel DRAW). Программа является кроссплатформенной, распространяется бесплатно и с исходным кодом. Основной формат изображений — SVG (масштабируемая векторная графика, стандарт W3C, рекомендованный для публикации векторных рисунков в интернете).

О работе с программой, а заодно и о том, как наполнить объёмом векторное изображение, я хочу рассказать на примере создания своей картинки со снеговиком.

Снеговик. Нарисовано в Inkscape. Автор — Юрий Апостол.

Статья писалась специально для Linuxgraphics.ru. Читайте, пожалуйста там.

UPD: По многочисленным просьбам публикую исходник. Лицензия — CC Attribution Non-commercial Share Alike. Благодарности можно отправить на кошелёк Z161444749304 или R173720801008. Половина уйдёт в фонд развития Inkscape.

Склад бесплатных иконок

Reading time1 min
Views164K
Прошелся по закладкам и образовалась такая толстенькая подборочка ресурсов с бесплатными и качественными иконками, с которой спешу поделиться с тобой %username%!

Iconfinder


image


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

Рисуем координаты на карте с помощью PHP + GDLib

Reading time2 min
Views8.7K
Так сложилось что по долгу своей службы я занимаюсь гео-поиском. И зачастую мне нужно показать на карте координаты пользователей, для того чтобы сделать какие-либо анализы. Для этой цели я, до определенного времени, успешно использовал Google Maps, пока, однажды, мне не понадобилось нанести на карту не много не мало 16 млн. координат.

Как я это сделал?
Читать дальше →

Реализация 960gs в Drupal (NineSixty theme)

Reading time2 min
Views1.8K

О NineSixty


NineSixty это тема для Drupal на основе 960gs, предназначенная для использования в качестве базовой темы.
image

Преимущества NS:


  • контент-ориентированная разметка с использованием классов «push» и «pull»
  • динамическая ширина блоков в зависимости от контента
  • инструменты для отладки и визуализация сетки
  • поддержка языков с направлением письма справа налево

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

QIP Infium & juick.com

Reading time4 min
Views1.8K
Данный пост будет посвящен не мессанджеру QIP Infium и даже не инстант-блогу juick.com, как могло показаться из названия. Данную статью я попытаюсь посвятить работе в XML консоли. Зачем это требуется и почему нужно вводить в заблуждение — спросите Вы? А вот зачем: как многие уже наверное знают, а кто не знает догадывается, в jabber-e любые операции можно проводить используя только режим прямой работы с сервером через XML консоль. Но одна статья не сможет охватить всё многообразие работ. Поэтому было решено выделить наиболее наглядные варианты.

Жуйк известен своим развитым отношением к jabber-у. Да что там говорить, он фактически основан на jabber-е, имея вэб-интерфейс в качестве необязательного придатка. Однако в этом тесном сотрудничестве и скрыта ахиллесова пята жуйка. Далеко не все джаббер клиенты поддерживают функционал джаббера в том объёме, в каком предполагается использование в жуйке. В частности жуйк предполагает использование расширенных статусов XEP-0080 (User Location) и XEP-0118 (User Tune). Но что делать, если клиент (или сервер, на котором зарегистрирован ваш ник) не позволяет работать с данными расширениями? Отказаться в пользу другого сервера и/или клиента? Можно. Но вовсе не обязательно отказываться от удобного клиента – Вы можете посылать свои расширенные статусы сами.

И теперь ответ на второй вопрос – а почему собственно в качестве подопытного кролика выбран QIP Infium. Ответ на данный вопрос лежит на поверхности: данный клиент не поддерживает расширенные статусы. Причины этого, как и вероятность изменения ситуации, не вопрос данной статьи.
Читать дальше →

Шпаргалка по расшифровке имен видеофайлов

Reading time8 min
Views309K
Как то стало интересно что значат разные буковки/цифарки через точку в названиях видеофайлов.

Пост — результаты гугления, обобщения, структуризации и некоторой правки орфографии.
Возможно, кому то пригодится. Я, например, перестал связываться с TC.
Читать дальше →

В день рождения jQuery вышла долгожданная версия 1.4!

Reading time1 min
Views546
Сегодня 14 января годовщина библиотеки jQuery, которая появилась на свет в 2006 году, 4 года назад. Джон Ресиг в своем твиттере написал о том, что библиотеку уже можно скачать. И хотя на сайте об этом ни слова, Джон пообещал предоставить официальную информацию уже сегодня.

Ссылка на загрузку jQuery 1.4.

Поздравляю замечательный проект с днем рождения!

PS: не забудьте, что с сегодняшнего дня на сайте 14 days of jQuery стартует 14-дневная кампания по продвижению новой версии, в ходе которой будет доступна масса нового материала.

Эксперимент с формой логина: OpenID, два в одном, или обычный порошок?

Reading time3 min
Views1.1K
Привет, .

Недавно, когда запускали Кинобазу, мы помимо способов противодействия хабраээфекту задались ещё одним вопросом, который нас давно интересовал: какая форма логина удобнее всего для большинства пользователей. Для этого мы провели эксперимент: до сегодня всем посетителям сайта предлагалась случайным образом один из 4х вариантов формы логина, каждый из которых состоял из 2х форм. Оценку мы проводили очень просто: по количеству человек, которые всё-таки зарегистрировались через каждый из вариантов форм. Поскольку варианты предлагались случайным образом, чем больше человек зарегистрировалось — тем удобнее форма (или тем меньшее количество людей она отпугнула:).

Итак, участники эксперимента и его результаты:
под катом

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity