Search
Write a publication
Pull to refresh
14
0

User

Send message

Отправка комментариев пользователей сайта вам на Jabbеr

Reading time1 min
Views6K
Во время шумихи с аськой и предложениями перехода на jabber я решил разобраться: что же такое джаббер и как он мне может пригодиться кроме прямого общения.

Применение нашлось само собой – хочется получать комментарии с сайта себе в мессенжер. Этот подход оказался очень удобным и простым в реализации.

Поскольку я только начал разбираться с джаббером решил использовать готовую библиотеку для php (так как мой сайт работает на нем).
Итак, на сайте протокола xmpp (jabber) xmpp.org/software/libraries.shtml я скачал баблиотеку xmpphp (она мне понравилось больше всех своей простотой в понимании) и закачал ее на свой хост.

В функцию добавления комментария на сайте я добавил строки:

include ‘XMPPHP/XMPP.php’;
$conn = new XMPPHP_XMPP('джаберовский сервер', 5222, 'логин', 'пароль', 'xmpphp', 'jabber.ru', $printlog=false, $loglevel=XMPPHP_Log::LEVEL_INFO);
try
{
	$conn->connect();
	$conn->processUntil('session_start');
	$conn->presence();
	$conn->message('ваш джаббер', 'текст сообщения');
	$conn->disconnect();
}
catch(XMPPHP_Exception $e)
{
	die($e->getMessage());
}


Где: джабберовский сервер — сервер через который отправляются сообщения (я указал тот же на который и приходят сообщения).
Внимание! Текст сообщения должен быть с кодировке UTF-8.

Вот собственно и все…

P.S. Спасибо за приглашение на хабр! Решил перенести свою статью из песочницы в блог.

Тривиальные задачи по вёрстке

Reading time4 min
Views60K
image

Начинаю вести серию статей Это статья про вёрстку html css js, начинаю с самого простого, потом планирую описать более сложные вещи и всякие тонкости и этим видимо так и закончил

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

Раздел «Песочница»

Reading time1 min
Views1.4K
Всем привет.

То, что должно было случиться уже давно, наконец, случилось: отныне и во веки веков каждый гость Хабра имеет возможность на законных основаниях получить инвайт и зарегистрироваться на сайте.

Для этого не нужно искать знакомых на Хабре, выпрашивать инвайт на форумах, даже писать с просьбами в администрацию тоже не нужно. Достаточно пройти в специальный раздел «Песочница» и опубликовать там свой топик. Если пост понравится кому-то из имеющих инвайт пользователей, автор топика имеет все шансы получить приглашение и зарегистрироваться. Чтобы это произошло, топик должен быть интересным, укладываться в рамки тематик Хабра и быть абсолютно оригинальным. Спамеры, копипастеры и шутники могут проходить мимо, так как раздел модерируется. Даже если кому-то удастся проскочить, впоследствии этот негодяй будет отловлен и депортирован в Зимбабве. То же касается и любителей наплодить виртуалов, только в их случае депортировать будем сразу на Солнце, без сухого пайка.

Самим пользователям расслабляться и отдавать инвайт кому попало тоже не советуем: тайную взаимосвязь между приглашающим и приглашенным еще никто не отменял ;)

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

Системное администрирование. Начало

Reading time6 min
Views222K
Существует много пособий по настройке программ (Операционок, сервисов, сайтов и тд), но редко можно встретить мануал по организационным вопросам связанным с системным администрированием. Сразу скажу, опыт работы у меня достаточный. Рассматриваться предмет будет на моем личном примере работы, сразу скажу что любые аргументированные дополнения, и исправления приветствуются. Также поясню для господ минусующих: «Не нравится? Сделай лучше!», и обязательно пришли ссылку, почитаю с большим удовольствием.
Начнем

IE, Quirks mode и ошибки при отображении полей ввода в зависимости от того, вводятся латинские или кириллические символы

Reading time5 min
Views3.1K
Добрый день всем

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

При работе над проектом столкнулся с неожиданным поведением полей ввода input и textarea при работе IE в режиме quirks mode. И все бы ничего, в общем-то — кого сегодня удивишь странностями и багами IE. Интересное заключается в том, при каких условиях проявляется проблема. В этот раз это происходит в зависимости от того, какие символы вводятся в поле ввода — кириллические или латинские. Кириллица вызывает проявляение проблемы, латинница вводится нормально и проблема не проявляется. Это показалось мне достаточно интересным и я решил поделиться наблюдением собщественностью.

мне интересно, расскажите

Erlang. Что это, зачем, как и для кого.

Reading time2 min
Views83K
Статья короткая, если понравиться, попробую осветить этот язык программирования подробнее.

Что



Erlang, это функциональный язык программирования с динамической типизацией, главной особенностью которого является программирование на уровне отдельных процессов(почти аналог threads в других ЯП), коммуникация между которыми реализуется с помощью MPI(Message Passing Interface).

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

Хостинг для SVG изображений

Reading time1 min
Views3.4K
На http://petaimg.com можно выкладывать свои SVG и SVGZ изображения. Это значит, что есть место, куда можно выложить свои макеты, рисунки и прочие пряники в векторном формате.

Встраиваются куда угодно с помощью <img src="*.svg" alt=""/>, но видны только в Опере и вебкитовых браузерах (проверял только в сафари). Ради безопасности в случае вставки через img браузеры не поддерживают интерактивность в таких изображениях.
Эх! если бы у тебя был добрый браузер!
Есть один минус у хостинга — картинки порой удаляются.

Сайт как инструмент

Reading time4 min
Views4.3K
Один из стандартных вопросов, который задает (или по идее должна задавать) веб-студия на первой встрече с клиентом – зачем вам нужен сайт? Зачастую клиент с готовностью отвечает «нам нужен сайт как инструмент». Но, как показывает опыт, иногда это примерно то же самое, что прийти в магазин и купить дрель, чтобы была. Чтобы в доме был инструмент.

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

С учетом того, что создание сайта – удовольствие чаще всего не дешевое, что же нужно сделать, чтобы инструмент не лежал на полке, а использовался по своему прямому назначению? Декларируя, что мы заказываем сайт-инструмент, надо понимать, какие именно «дырки» мы хотим получить в результате.

Давайте рассмотрим постановку задачи на примере.
Читать дальше →

Я бы в Джабберы пошёл…

Reading time5 min
Views36K
… пусть меня научат.

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

Введение и пара оговорок



Джаббер (Jabber) — протокол мгновенного обмена сообщениями. Хотя Jabber правильнее называть XMPP — расширяемый протокол обмена сообщениями и индикацией присутствия.
Читать дальше →

Уроки «плохого» интерфейса

Reading time4 min
Views4K
В тот день, когда Грубер (Gruber) впервые опубликовал интерфейс TripLog/1040 от Stevens Creek, я был настроен неблагосклонно. Цвета — яркие, элементы управления казались расположенными в совершенно случайном порядке. Это шло вразрез со всем тем, за что ратуют наши дизайнеры. Просто бардак. Вскоре страница на Flickr превратилась в площадку для нападок и оскорблений. Но тут случилось нечто весьма интересное. Дизайнер TripLog Стив Патт (Steve Patt) посреди всего этого потока желчи опубликовал комментарий, в котором поделился той логикой, что в конечном счёте привела к такому варианту дизайна. Те, кто предпочёл его не слушать, ничему не научатся, но остальные могут многое почерпнуть из наводящего на интересные мысли объяснения и двадцатилетнего опыта мистера Пратта в разработке ПО.

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

Что произошло с «аськой» (часть 2-я)

Reading time4 min
Views8.2K
Вчерашний эпический тред про происшествие, связанное с очередной сменой ICQ-протокола компанией AOL, вызвал небывалый интерес не только зарегистрированных пользователей Хабра, но и нескольких десятков тысяч гостей, пришедших на сайт. Хабр стал первым ресурсом в Сети, наиболее полно и достоверно описавший реальную ситуацию, сложившуюся вокруг сервиса ICQ. Благодарить за это нужно одного из разработчиков популярного ICQ-клиента Miranda IM Виталия Игонина (persei), который по моей просьбе подробно и, главное, очень оперативно рассказал всем нам о том, что, как и почему случилось с «аськой».

Поскольку написанный Виталием топик стал слишком тяжелым (более 1000 комментариев), приведу краткую ретроспективу событий:
— около 13:00 по московскому времени серверы AOL один а другим перестали подключать к себе все альтернативные ICQ-мессенджеры; сайт icq.com при условии захода на него с СНГ-шных IP выглядит так;
— спустя пару часов стало ясно, что серверы AOL блокируют альтернативные клиенты не во всех случаях, а будто бы выборочно: многие пользователи продолжают подключаться без каких-либо проблем;
— еще некоторое время спустя становится ясно, что блокировка подключения происходит только в случае использования IP стран СНГ. Очевидно, AOL намеренно борется, прежде всего, именно с российскими пользователями альтернативных ICQ-клиентов;
— около 19:00 МСК разработчик Miranda Виталий Игонин публикует на Хабре подробную статью о случившемся и сообщает о том, что совместно с разработчиками QIP идет поиск решения проблемы;
— около 22:00 МСК парни находят первые зацепки и обещают в ближайшее время побороть проблему целиком;
— около часа ночи разработчики QIP выпускают новую сборку QIP Infium (9022), подключающуюся к серверам AOL без проблем;
— следом команда разработчиков Miranda IM выпускает исправленную версию плагина Miranda IM ICQ+;
— очередная попытка AOL положить на лопатки альтернативные ICQ-клиенты терпит фиаско в течение суток!

А теперь — самое интересное: Виталий Игонин рассказывает, как им удалось победить AOL:
Читать дальше →

Пароли: Гуманистический подход против Технократического

Reading time2 min
Views1.2K
Наткнулся тут рядом на обширную статью про то, как придумывать пароли с введением, кучей абзацев, картинкой, чуть ли не эпиграфом — как тут это сейчас модно :)

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

Давайте вспомним, каковы требования к паролю (не слишком формализованные):
  1. Быстро создать
  2. Легко запомнить владельцу
  3. Легко воспроизвести
  4. Трудно запомнить случайно подглядевшему
  5. Трудно подобрать перебором
Мне известно следующее решение, уж не знаю, кто его автор, но подсказал его urbansheep.

Из психологии известно, что человек легко запоминает абсурдные фразы. Абсурдные фразы кажутся человеку абсурдными именно потому, что представляют собой нетипичное, необычное и бессмысленное сочетание слов. Amazon.com использует редкочастотные сочетания слов (Statistically Improbable Phrases) для идентификации текстов.

Тогда, взяв словарь русских прилагательных и существительных (допустим, в каждом из них по 10 тыс. слов), можно выбирать оттуда случайным образом 2 прилагательных и 1 существительное, порождая в результате абсурдную, но запоминающуюся фразу.

Пример:
неистовый волшебный катализатор
Итак, число вариантов для такой фразы — 1012, т.е. 1 триллион.

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

Важное уточнение — если у вашего сервиса много мобильных пользователей, то операцию преобразования делать не стоит! (могут быть трудности при наборе + на мобильном устройстве риск 4 не так актуален).

Кто напишет онлайновую программку-генератор? :)

P.S. Представьте, как такой подход упростил бы задачу запоминания автоматически сгенерированных веб-сервисами паролей для «обычных пользователей» — секретарш, бухгалтеров и т.д.

Функциональное программирование для землян — функции

Reading time5 min
Views9.2K


В статье про Python пользователь Xronos попросил рассказать о функциональном программировании (ФП). Поскольку я одно время довольно плотно занимался с Lisp, я хотел бы немножко рассказать об этом. Сразу хочу сказать, что о чистом ФП речь не идет. Я расскажу о более простых и более применимых приемах на примере языка Python.

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

CSS counters

Reading time7 min
Views34K

Одной из редко используемых возможностей CSS2.1 являются счетчики. Описаны они в разделе спецификации, посвященной генерации контента. Что же это такое?

Приведу пример из спецификации, эмулирующий обычный нумерованый список с помощью счетчика и свойства content:
OL { counter-reset: item }
LI { display: block }
LI:before { content: counter(item) ". "; counter-increment: item }

Первым правилом мы назначаем элементам OL счетчик с именем «item», затем для всех LI меняем значение свойства display на block, вместо значения по умолчанию (list-item), чем отключаем стандартные маркеры-цифры. Наконец, в последнем правиле, мы инкрементируем счетчик для каждого элемента списка, а само его значение показываем перед элементом c помощью функции counter() и свойства content. Всё просто.

Но это еще далеко не всё

Ribbon? Это просто! или Работаем с каскадными таблицами стилей (CSS) в Qt

Reading time6 min
Views24K
Некоторое время назад в одном из обсуждений я упомянул о том, что контрол «a-la ribbon» (который был использован в MS Office 2007 для организации меню) легко и непринуждённо реализуется средствами Qt.

Я не хочу спорить о том, удобен ribbon или нет (сам я больше склоняюсь ко второму мнению). Но на его примере можно отлично раскрыть возможности каскадных таблиц стилей для Qt (которые были представлены в Qt 4.2), чем я и займусь. Сразу прошу прощения: я не дизайнер, поэтому с точки зрения эстетики мой QRibbon скорее всего не дотянет до своего собрата от МС, но дизайнеры в МС, полагаю, в своей области превосходят меня на 2 головы, да и человеко-часов, думаю, там было затрачено в слегка побольше. Я же всего лишь демонстрирую общий принцип и базовые возможности.

Так как я сейчас изучаю язык Python, то для демонстрации был выбран именно он, но для C++ всё делается абсолютно так же. Заранее прошу прощения: Python я только-только изучаю, поэтому код может быть полон корявостей, так что прошу больно не пинать :)

Итак, начнём!
Читать дальше →

О разбитых окнах.

Reading time2 min
Views2.1K
Ученые установили, что за ограду с табличкой «Не входить! Велосипеды не пристегивать!» все равно входят 27% желающих срезать путь, но если рядом пристегнуть велосипед, число вырастет до 82%.

Что же это, доктор?

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

Модальность за рамками диалоговых окон

Reading time3 min
Views3.2K
Статью написал jagoterr. Если эта статья наберет +50 то автор получит инвайт на Хабрахабр.

Аза не так давно опубликовал заметку о модальных оверлеях (Здесь и далее по тексту используется именно такой перевод слова overlay, наименее “русский”, но зато не искажающий сути данного понятия). О тех самых диалоговых окошках, которые внезапно выскакивают и блокируют то, что находится позади них. Вы полностью свободны в своих действиях в рамках модального окна, но вы не можете использовать ни один “перекрытый” им элемент до тех пор, пока это окно не исчезнет.

Обычно, когда мы говорим о модальных окнах, мы говорим именно о диалогах, таких как на приведённом ниже фрагменте приложения Google Documents. Критика Аза относится как раз к модальным окнам такого рода. После того, как вы открыли диалог поиска/замены, вы не можете кликнуть мышью нигде, кроме как внутри этого диалога. Это означает, что вы не можете пролистать документ, находящийся под диалогом, или скопировать слово из документа и вставить его в строку поиска, не закрывая диалог.

image

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

Кузявые ли бутявки, т.е. пишем морфологический анализатор на Python

Reading time8 min
Views54K
Морфологический анализатор для русского языка — это что-то заумное? Программа, которая приводит слово к начальной форме, определяет падеж, находит словоформы — непонятно, как и подступиться? А на самом деле все не так и сложно. В статье — как я писал аналог mystem, lemmatizer и phpmorphy на Python, и что из этого получилось.
Читать дальше →

Information

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