Search
Write a publication
Pull to refresh
0
0
Send message

Неприступный почтовый сервер, или жизнь без спама

Reading time11 min
Views201K
Борьба со спамом — это головная боль всех ответственных администраторов почты. Чего только они не изобретают, чтобы любимым пользователям лучше жилось. Однако, как показала практика общения со многими системными администраторами, почему-то далеко не все представляют как правильно фильтровать спам.

Чаще всего встречается подход «добавим кучу RBL (DNSBL) и будем радоваться жизни». Подход не верный чуть более, чем полностью. Второй по популярности — контент-фильтры, зачастую купленные за бешеные деньги. Такой подход тоже в большинстве случаев совершенно неоправдан.

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

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

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

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

syncTranslit плагин

Reading time2 min
Views5.3K
Во многих веб проектах используются friendly urls. Например, вместо id статьи в url испольуется его текстовый идентификатор (slug). Обычно slug генерируется автоматически на серверной стороне при создании статьи. Но если вы хотите иметь возможность задавать slug самостоятельно (через форму) — можете использовать мой плагин syncTranslit.

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

peeep.us — ссылки на закрытые страницы

Reading time1 min
Views5.5K
Привет, Хабр!

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

Суть сервиса в том, что вместе с самой ссылкой peeep.us хранит содержимое страницы с точки зрения пользователя, который создавал ссылку. Это дает возможность опубликовать или дать другу ссылку на страничку, обычно недоступную для просмотра извне. Например, можно показать другу классный пост на Лепре или личное сообщение вконтакте. А еще его можно использовать просто как хранитель состояния сайта. По пииипнутой ссылке будет всегда доступно содержимое страницы на момент времени, когда она была создана (вместе с удаленными коммантариями, например). Это как кеш Google или archive.org, только по требованию.

Вот как это выглядит: прекрасный пост Артема Шитова. Видна лепра?

Чтобы просто сохранить состояние страницы нужно ввести адрес на peeep.us и кликнуть submit. А если нужно сделать ссылку на закрытую страницу, придется воспользоваться букмарклетом, который есть там же. Букмарклет скачает текст страницы XMLHttpRequest'ом, а затем отправит куда надо. Все, вроде бы, несложно.

Кстати, сам сервис работает на Google AppEngine, то есть потенциально закроется или заддосится только вместе с гуглом целиком ;). А если кому интересно, откуда такое тупое название, так это от слова peep — подглядывать [в замочную скважину].

Разговор с Незнакомцем

Reading time2 min
Views6.9K
image
Хочу представить вашему вниманию мини-стратапчик «Разговор с Незнакомцем».

Что.


«Разговор с незнакомцем» позволяет поговорить со случайным человеком. Знаете, что такое «Синдром случайного попутчика»? Это когда вы рассказываете совершенно незнакомому вам человеку свои самые сокровенные тайны, обсуждаете наболевшие проблемы, точно зная, что с ним вы вряд ли когда-либо встретитесь. Обычно такое случается при поездках на поезде, в такси, автостопом, долгих полетах на самолете — когда рядом с вами продолжительное время находится случайный попутчик. Теперь не нужно никуда ездить — анонимно, бесплатно и без регистрации можно поговорить с совершенно незнакомым человеком в виртуальной реализации «Синдрома случайного попутчика».
Читать дальше →

Проект Gestalt – пишите на Ruby, Python и XAML прямо в HTML на стороне клиента

Reading time5 min
Views4.8K
imageGestalt – это open source фреймворк, который позволит вам включить в обыкновенный html-код страницы коды на Ruby или Pyhton и даже XAML-разметку. И все это будет работать на стороне клиента! Если вы хотите написать клиентский код подобный следующему,
<script language=«python»> или <script language=«ruby»>
то Gestalt сделан специально для вас. Быстрый старт и простейшую демонстрацию можно посмотреть по адресу http://www.visitmix.com/labs/gestalt/getstarted/.

* внимание, исполняющая среда запускается не мгновенно, при самой первой загрузке стоит подождать пару секунд и все заработает

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

OpenSource-курсач, или заставляем преподавателя выпасть в осадок

Reading time3 min
Views10K
Собственно вот. Закончила и готовлюсь к защите. А попутно готовлюсь к тому, что преподаватель будет хлопать глазами, аки невинное дитя, и спрашивать — «ЧТО ЭТО»? Но придраться будет не к чему, и он таки зачтёт мне курсач, ибо… куда денется :)

Собственно, я — студентка-заочница, работающая по специальности куда дольше, чем по ней обучаюсь (да-да, женщина-программист — не фантастика, мы существуем). Преподаватель — выпускник местного педвуза, по совместительству классический, я бы даже сказала, клинический одинэсник, кое-как копошащийся в Дельфях, но сам, похоже, не написавший ни одного рабочего приложения. Курсач — обычное, я бы даже сказала, наибанальнейшее задание по написанию софтины, которая проводит тестирования. Вот только идти по обычному «шланговскому» пути и писать это всё кое-как на остоедреневшей дельфятине (или, ещё «лучше», скатывать с Тырнета готовые варианты, коих развелось до неприличия много) мне не хочется — всё же, ви таки не повегите, я хочу чему-нибудь новому научиться. А попутно и слегка повыпендриваться и утереть нос пафосным преподам — этого у меня не отнять, это я люблю (какая женщина не любит покрасоваться, а?), причём ещё с тех пор, как в 11 классе школы написала схожую софтинку не на турбопаскале, как все нормальные ученики, а на Перле. :))
Читать дальше →

QIP — Минутка ненависти (хистори на сервере)

Reading time2 min
Views14K
На неделе (или я только сейчас начал получатьуведомления) QIP запустил какой-то гадский сервис, который называют MBlogi. Суть этого сервиса в том, что статусы, которые пользователь выставляет в кипе — постятся в этот «блог» а-ля Твиттер как отдельные посты. И это абсолютно без ведома пользователя. И без вопроса ко мне, хочу ли я получать по почте уведомления о новых записях в этих блогах оставленных моими друзьями. Что само по себе является довольно нечистоплотным ходом и проявлением неуважения к пользователям. С одной стороны – нарушение прайваси – я не хочу чтобы мои статусы где-либо светились, с другой стороны фактическое навязывание мне ненужного сервиса.

Далее. Вчера, или даже сегодня ночью был дефейснут сайт QIP.ru, форум, блог главного разработчика. Об этом на хабре до сих пор активно говорят. Именно благодаря этому обсуждению я узнал, что ОКАЗЫВАЕТСЯ qip хранит историю Jabber переписки на сервере. При этом я как пользователь программы об этом даже не подозреваю, не вижу никаких подобных настроек в разделе «настройки/история» и естественно меня никто не спрашивал, хочу ли я сохранять свою личную переписку на сервере.

Далее. Удалить хистори с сервера можно только одним способом — удалять выделяя по 20 сообщений, в каждом отдельном контакте. Тоесть если Вы любите поговорить — удалять теперь будете очень долго и геморно.

А ещё в QIP есть такая опция — авторизовывать вас на сайте автоматически. Это значит, что вы постоянно авторизованы на сайте qip.ru и войти в хистори и почитать может кто угодно, севший за ваш комп, даже если QIP выключен и под паролем.

Похоже хранение истории на сайте в программе вообще не упоминается, только на самом сайте можно её отключить. По крайней мере об этом гласит строка в заголовке меню. Но вот незадача – после отключения сохранения истории она всё равно сохраняется…

Разработка через задницу

Reading time2 min
Views9.9K
Индустрия программного обеспечения — это, наверное, крупнейший в мире питомник новых систем управления. Agile, Экстремальное Программирование, Разработка Через Тестирование (Test Driven Development, TDD) — акронимы и фреймворки продолжают плодиться. Почему?

Кто-то скажет: незрелость — производство ПО еще молодая промышленность и все эти изменения — путь к некоторым истинным основам. Другие говорят, это потому, что люди от программирования просто любят выдумывать всякие штуки и сами не могут разобраться. А я скажу так: раз уж мы идем к тому, чтобы иметь дюжины моделей, хотя бы некоторые из них могут быть честными, хотя и циничными, по отношению к тому, что на самом деле происходит большую часть времени.
Читать дальше →

The people project

Reading time1 min
Views849
The People Project — новая инициатива в мире Open Source, призванная объединить все данные о ваших друзьях и собеседниках в один метаконтакт. Данные из социальных сетей, сообщения в блогах, подкасты, IM, почтовые сообщения, отныне с лёгкостью смогут быть привязаны к конкретному человеку, что избавит от необходимости отслеживать события из жизни друзей самостоятельно оббегая десятки сайтов, а главное — предоставит API, позволяющее взаимодействовать с этими данными.
Сейчас The People Project разрабатывается прежде всего в рамках проекта GNOME, взаимодействуя с программами посредством D-Bus. Проект написан на языке Vala, уже готовы привязки к GLib, Python и C#.
image
О намерении интегрировать The People Project уже заявили разработчики Empathy (клиент IM), Gimmie (панель запуска), Soylent (нечто, что лучше всего даёт представление о The People Project), Seahorse (менеджер ключей).
На данный момент уже удалось реализовать поддержку Google Contacts, Twitter, Friendfeed и Last.fm. Сейчас разработчики трудятся над поддержкой Facebook, OpenSocial, Telepathy, Launchpad, Ohloh, Gravatar и прочего.

Как решить некоторые проблемы в Linux

Reading time4 min
Views24K
image

Вступление


Как известно, типичные РС-компьютеры собирают из весьма разношерстных компонентов — процессор от одного производителя, видеокарта от другого, звуковая карта от третьего. Темы про принтеры/сканеры/Wi-Fi адаптеры/TV-тюнеры просто кишат повсюду на форумах. Не добавляют оптимизма и вездесущие китайские производители, не особо-то стремящиеся к стандартизации. Перед операционной системой стоит непростая задача заставить работать согласованно все эти устройства.
Предлагаю вашему вниманию небольшой гайд по устранению типичных проблем в Linux.

По мотивам этого.
Читать дальше →

Нынешние правила Хабрахабра подталкивают к кукловодству, положение следует выправлять

Reading time4 min
Views484
Мне идея вон того пожелания (песочница для заминусованных) кажется продуктивною, и даже заслуживающей дальнейшего развития, и вот почему.

Давеча я написал неплохой хабратопик (сейчас у него рейтинг «+60»), но спорный (в том числе поэтому у меня последние несколько дней была отрицательная карма, даже и до «-7» — что, впрочем, заодно объясняется и моей дохабровской, внехабровской репутацией среди отдельных хабровцев).

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

и вот выводы про песочницу

Используем любой шрифт с Javascript.

Reading time3 min
Views25K
Все мы знаем прекрасные библиотеки sIFR3 и FLIR, которые на лету помогают использовать любой шрифт на веб-страницах.
Правда, с моей точки зрения, их использование (а именно установку и настройку) нельзя считать легким трудом.

Сегодня я расскажу о библиотеке Typeface.js, которая, как видно из названия, работает на чистом JavaScript.

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

Скрытые фичи суперхабра

Reading time2 min
Views549
Сегодня чего-то залез в код хабра и обнаружил там закомментированный блок, который по сути представляет из себя панельку с кнопочками для навигации по сообщениям. Выглядит закомментированный код так:
<ul class="comments_bar">
    <li class="cb_reload"><span class="corner"></span><a href="#" onclick="return commentForm.reloadComments('38271', 'post', '1219860285');" title="Обновить комментарии без перезагрузки страницы"></a></li>
    <li class="cb_prev"><a href="#" onclick="return commentForm.goPrevNewComment(event);" title="Следующий новый"></a></li>
    <li class="cb_next"><a href="#" onclick="return commentForm.goNextNewComment(event);" title="Предыдущий новый"></a></li>
    <li class="cb_my"><span class="corner"></span><a href="#" onclick="return commentForm.goMyComment(event);" title="Перейти к своему комментарию"></a></li>
</ul>

Как видно, этот блок предоставляет следующий функционал:
  1. Перезагрузку дерева сообщений, без перезагрузки страницы
  2. Переход к следующему или предыдущему непрочитанному сообщению (при этом снимается отметка о том, что сообщение не прочитанно)
  3. Переход к своим сообщениям
Что самое интересное, оно уже работает, нужно только включить. Включить можно, например, введя в адресной строке следующее:
javascript:mc=document.getElementById('main-content'); mc.innerHTML+=mc.childNodes[5].data;void 0;

Интересно, что скажут хабраразработчики? ;)

UPD: Подоспел greasemonkey-скрипт от rozboris

UPD2: Ещё один скрипт, пока что работает только в Опере. Автор —GMM

Превью и Resize картинок в html

Reading time1 min
Views9.5K
Навеяно практически одноименным постом

Я вспомнил как однажды решал указанную проблему. Мой способ очень похож но имеет несколько дополнительных плюсов… и минусов )))

Плюсы:
— Картинки генерятся только когда они нужны (т.е. мы не храним ненужных изображений и не нагружаем сервер в случае массовой загрузки изображений)
— PHP работат только первый раз (когда картинка нужного размера еще не существует)
— Размеры нужного изображения фигурируют только на стороне шаблона, т.е. грубо говоря в html

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

UNetbootin — Universal Netboot Installer

Reading time1 min
Views17K

UNetbootin позволяет устанавливать различные Linux / BSD дистрибутивы на раздел жёсткого диска или флешку. А также создание загрузочных образов Parted Magic, Super Grub Disk, Backtrack, NTPasswd, Smart Boot Manager (SBM), FreeDOS, и других

скачать для windows

скачать для linux

unetbootin.sourceforge.net
www.teamteabag.com/2008/08/13/howto-linux-from-usb-the-easy-way-with-unetbootin

Круговая прокрутка а-ля iPod на тачпаде

Reading time2 min
Views4.3K
Всем известно, что мультитач и прочие удобные трюки тачпадов от фирмы Synaptics, которые стоят практически на всех ноутбуках, зачастую реализуются драйвером тачпада и от аппаратной составляющей мало что зависит. Вот только поддержка их на разных системах разная.
Около полугода назад я, покопавшись в сети, настроил себе нажатие двумя пальцами на правую кнопку мыши, а тремя — на левую, после чего стал переносить руку на мышь гораздо реже. Но хотелось несколько большего.
Порывшись в man synaptics, нашел там интересную вещь под названием CircularScrolling, что в переводе означает «круговая прокрутка». Многим она знакома по плеерам iPod — весьма и весьма удобна при прокрутке длинных документов. Естественно, мне захотелось себе такую же, ибо прокрутка по правому краю не лучший выбор.
Итак, приступим к настройке. Попутно покажу, как реализуется обработка нажатий двумя и тремя пальцами.
Читать дальше →

Rambler ICQ vs. QIP Infium: сравнение клиентов

Reading time4 min
Views4.5K
QIP — говно. Неспособные настроить миранду просто неспособны ее настроить. Она того стоит.
Я не люблю QIP и не пытаюсь его пиарить. Суть статьи и обсуждения в том, что интерфейс ICQ6 плох, а не в том, что QIP хорош.
QIP хуже любого другого альтернативного клиента. Это мое мнение.


Предыстория.
Есть в кругу моих друзей один персонаж. Этот персонаж в качестве клиента Oscar по возможности использует официальный клиент ICQ. Объясняет он это тем, что всякие QIP, Miranda, etc. паразитируют на чужом протоколе. На вопрос о том, что же делать тому большинству, которое тошнит от интерфейса ICQ6, персонаж утверждает, что интерфейс у программы нормальный. На вопрос о потреблении ресурсов говорит, что QIP когда-то сжирал 2% CPU при нуле у ICQ. В один момент мне надоело бросаться словами, я запустил виртуалку, поставил там QIP Infium и Rambler ICQ (как два наиболее популярных в России клиента из расссматриваемых страниц) и прошу у проходящих мимо поддержки или критики.

История.
(Аккуратно, траффик)
Читать дальше →

Использование usability guidelines для повышения качества веб-разработок

Reading time10 min
Views13K
Данная статья была создана по мотивам презентации, сделанной на конференции SQA Days. Статья впервые опубликованна на GUI.ru и теперь хотелось бы обсудить usability guideline с хабралюдьми

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

Что следует понимать под юзабилити? Определение юзабилити приведено в стандарте ISO 9241-11 как степень эффективности, продуктивности и удовлетворенности, с которой продукт может использоваться определёнными пользователями для достижения определённых задач в определённом контексте.

Пример бумажной бланка с ненужным для заполнения полем
Читать дальше →

Танцы с бубном для блондинок, или о tabbed menus и хитрой работе с графикой

Reading time5 min
Views1.4K
Собственно, перепал мне не так давно небольшой заказец. Вроде и несложный — а потанцевать с бубном немного пришлось. А всё из-за того, что заказчик оказался немного «падкой на дизайн блондинкой» (образно говоря), и требовал строгого соответствия конечного результата макету. Требовал попиксельно, и его совершенно не волновали такие вопросы, как валидность, семантичность и всё такое. «Хоть таблицами сверстай, а сделай». И сегодня речь пойдёт о том, как в таких условиях сделать весьма хитровыделанно нарисованное меню табами. Как и за свой код не устыдиться, и не пасть в грязь лицом перед заказчиком, вот в чём вопрос?
Читать дальше →

CSS Framework «Object Oriented CSS»

Reading time1 min
Views4.1K
Оригинальный css фреймворк «Object Oriented CSS» от инженера Yahoo Nicole SULLIVAN-HAAS
Очень молодой фреймворк (первый коммит — January 28, 2009), после беглого просмотра приятно удивила структура компонентов, а
после просмотра презентации, захотелось немедлено скачать и опробовать его.
Читать дальше →
2

Information

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