Как стать автором
Обновить
-1
0
fermion @fermion

Пользователь

Отправить сообщение

Пуленепробиваемый HTML: 37 шагов к идеальной разметке

Время на прочтение11 мин
Количество просмотров20K
Примечание: это не полный перевод статьи. Я выбрал только самые интересные лично для себя пункты. Статья не претендует на свежесть, но возможно даже люди хорошо знакомые с версткой найдут для себя что-то интересное. Статья затрагивает некоторые аспекты семантики верстки с конкретными примерами.

Под катом много букв! Чтоб не потеряться в их обилии все пункты выделены заголовками.
Читать
Всего голосов 144: ↑135 и ↓9+126
Комментарии83

Лайфхак для сисадмина, когда не работает «ping ya.ru»

Время на прочтение1 мин
Количество просмотров49K
Многие для проверки доступности интернетов используют простое и короткое «ping ya.ru», но что делать если не работает днс или недоступен сам ресурс ya.ru? Есть легко запоминающийся ip адрес одного из днс серверов.

ping 4.2.2.2

upd: перенесено в «системное администрирование»
Всего голосов 229: ↑214 и ↓15+199
Комментарии121

Релиз JuffEd 0.6.0

Время на прочтение3 мин
Количество просмотров2.8K
Как говорится, «тихо и незаметно» вышла новая стабильная версия моего велосипеда свободного кроссплатформенного текстового редактора JuffEd.
На Хабре я пишу о нём впервые, поэтому поясню, что это за зверь.

(скриншот от хабраюзера reaferon):
Клик!

Разработка началась чисто случайно, как ответ одному товарищу в споре «да блин, на С++ гуй писать просто нереально, замучишься всё руками фигачить, а вот в Delphi....». В качестве ответа был за полчасика-час набросан простой текстовый редактор на Qt с функциональностью а-ля Блокнот из ВинХР. Потом случайно увидел пример, как в Qt делается подсветка кода и прикрутил чисто ради практики. Потом понял, что им вполне уже можно пользоваться, что я и начал делать. Ну и пошло-поехало: фича там, фича тут, публикация на qt-apps.org, фичреквесты от пользователей…

Читать дальше →
Всего голосов 132: ↑124 и ↓8+116
Комментарии244

Графические фильтры на основе матрицы скручивания

Время на прочтение6 мин
Количество просмотров43K
UPD: Заголовок изменен, что бы более соответствовать теме статьи

В статье пойдет речь об использовании convolution matrix (матрицы скручивания или матрицы свертки), с помощью которой можно создавать и накладывать на изображения фильтры, такие как blur, sharpen и многие другие.

Cтатья будет интересна не только веб-программистам, но и всем кто так или иначе занимается программной обработкой изображений, поскольку функции для работы с матрицей скручивания имеются во многих языках (точно известно о php и flash). Так же, статья будет интересна дизайнерам, использующим Adobe Photoshop, поскольку в нем имеется соответствующий фильтр (Filter-Other-Custom).

Примеры будут на языке PHP с использованием библиотеки GD. Теория, практика, примеры (осторожно, много картинок!)

под катом
Всего голосов 100: ↑98 и ↓2+96
Комментарии37

Исследование на тему замены стандартных кнопок

Время на прочтение8 мин
Количество просмотров2.8K
В процессе работы над интерфейсом одного продукта, появилась надобность в изготовлении собственного дизайна кнопок. За это время код, который заменяет стандартную кнопку на требуемую несколько раз переписывался и в данный момент тоже далёк от идеала. Учитывая все текущие проблемы кросс-браузерности, за это время выяснились и получилось нижеописанное.

Допустим, что она должна выглядеть примерно так:


Читать дальше →
Всего голосов 81: ↑60 и ↓21+39
Комментарии113

Прописываем dpi в PNG с помощью PHP

Время на прочтение2 мин
Количество просмотров5.2K
Понадобилось мне тут вдруг для одной прикладной задачи генерировать PNG-шки на PHP, чтобы затем их можно было вставлять в документы и распечатывать. Но вот проблема, никак с помощью GD в PHP при сохранении нельзя задать разрешение в dpi, а ведь это очень важно при печати. С ImageMagick мне связываться не хотелось, поэтому я быстренько нагуглил PNG (Portable Network Graphics) Specification и написал вот такой код:
Читать дальше →
Всего голосов 59: ↑54 и ↓5+49
Комментарии121

Vim как IDE для веб-разработки, и не только.

Время на прочтение12 мин
Количество просмотров101K
В данной статье рассматриваются мощные плагины, позволяющие повысить удобство разработки в VIM, а также даются ценные указания по их доработке и использованию. В том числе, используемых команд и горячих клавиш.

Рассмотрена настройка через конфигурационный файл vimrc и приведены ссылки на статьи с описанием отдельных моментов.

Кого-то VIM оттолкнет, показавшись поначалу слишком сложным или неудобным. Однако не стоит недооценивать его гибкость и возможность настройки себя, ведь из VIM можно буквально вылепить идеальный редактор/IDE, таким, каким вы представляете его себе.

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

Я постарался писать как можно компактней, но без потери содержательной части, но статья все-равно вышла довольно объемной. Материал логически разбит на несколько разделов и совсем не обязательно читать его по порядку. Тем не менее, прочитать сведения по установке плагинов и настройке vimrc я рекомендую настоятельно.


Читать дальше →
Всего голосов 78: ↑75 и ↓3+72
Комментарии62

Чистый шаблонизатор — PURE

Время на прочтение1 мин
Количество просмотров6.6K
Совсем недавно открыл для себя интересный шаблонизатор под названием PURE.

Им удобно пользоваться, у него хороший сайт, а также поддержка самых разных JavaScript-библиотек (Prototype, jQuery, MooTools, Sizzle, скоро Dojo).
пример использования
Всего голосов 32: ↑17 и ↓15+2
Комментарии42

Mohawk / Объектная модель

Время на прочтение5 мин
Количество просмотров1.3K

Что такое Mohawk?


Mohawk (Мохавк или Могавк) — это JS-фреймворк, созданный для Ирокез CMS, и в нем же используемый. Первоначально фреймворк создавался как набор js-функций для создания кроссбраузерных скриптов, однако, впоследствии перерос в самостоятельный фреймворк.

Почему не jQuery или любой другой популярный фреймворк?

Дело в том, что когда создавался Ирокез, jQuery еще не было. В то время был очень популярен Prototype, а jQuery только набирал обороты. Но Prototype был больше популярен в RoR сообществе, поэтому я его не особо хотел использовать :)
Читать дальше →
Всего голосов 26: ↑20 и ↓6+14
Комментарии18

Независимое тестирование различных АнтиСпам решений (коммерческие и свободные продукты)

Время на прочтение11 мин
Количество просмотров20K
Целью данного тестирования было оценить эффективность работы различных антиспам систем. Для тестирования были выбраны следующие продукты:
• Apache Spamassassin — SA(свободный)
• Yandex Spamooborona 2.3 — SO(коммерческий)
• Kaspersky Antispam 3.0 — KAS(коммерческий)
• FastBL 0.7.0 (свободный)
• dnsbl списки:
bl.spamcop.net
cbl.abuseat.org
dnsbl.sorbs.net
dul.nsbl.sorbs.net
dul.ru
sbl-xbl.spamhaus.org
zen.spamhaus.org

Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии66

Jabber WebCam Bot

Время на прочтение4 мин
Количество просмотров2.4K
Эта идея пришла мне как-то случайно. Получить снимок с вэб камеры, которая находится дома, находясь на работе или в другом городе и при этом не расшаривать камеру через вэб… И не коннектиться по ssh… Забавно… Что, если получить его одним запросом в джаббере! Звучит бредово, но я занялся реализацией этого бреда!
Читать дальше →
Всего голосов 69: ↑68 и ↓1+67
Комментарии30

Памятка дизайнеру сайтов

Время на прочтение10 мин
Количество просмотров245K
Вторая версия статьи, расширенная и дополненая.

Большая часть готовилась для моего выступления на «РИТ: Клиентские технологии», куда я, к сожалению, не доехал.

 

Памятка дизайнеру сайтов

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

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

Читать дальше →
Всего голосов 453: ↑444 и ↓9+435
Комментарии231

20 «НЕ» для веб-дизайнеров

Время на прочтение6 мин
Количество просмотров12K

У каждого дизайнера есть ряд правил, которыми он руководствуется в своей работе. И нередко памятки, составленные из таких правил от опытных дизайнеров служат хорошим подспорьем для начинающих. Некоторое количество таких правил у меня есть тоже. Правда, они касаются того, чего НЕ следует делать при изготовлении макета. Некоторые могут показаться банальными и очевидными, другие даже вызовут у кого-то недоумение. Но мне они очень помогают и, я надеюсь, какие-то из них так же будут полезны тем, кто занимается веб-дизайном или желает приобщиться к этой области разработки сайтов.
Читать дальше →
Всего голосов 196: ↑152 и ↓44+108
Комментарии178

Asterisk – система компьютерной телефонии уровня предприятия

Время на прочтение9 мин
Количество просмотров264K
Я хочу рассказать о свободном решении для компьютерной телефонии от компании Digium. Asterisk – это ATC созданная хакерами (в первоначальном смысле этого слова), а точнее, это супер конвергентная платформа компьютерной телефонии, распространяемая по лицензии GNU GPL, изначально разрабатываемая Марком Спенсером (Mark Spenser), позже ставшим президентом и техническим директором компании Digium. Благодаря коммерческой поддержке Его компании и лицензии GNU GPL Asterisk активно развивается и поддерживается тысячами людей со всей планеты.

Дaлее
Всего голосов 111: ↑108 и ↓3+105
Комментарии67

Шифруем сообщения в сети XMPP/Jabber с помощью PGP

Время на прочтение5 мин
Количество просмотров81K
В этой статье я подробно опишу как использовать шифрование при передаче сообщений по сетям на основе XMPP с помощью пакета GnuPG. Показана процедура генерации ключевых пар под Windows, установка ключей в клиент Psi, проверка подписанного присутсвия, передача шифрованного сообщения.

Мотивация


Для чего может понадобится шифрование сообщений?
  1. Так как сеть XMPP федеративная и каждый может основать свой узел, то ставится вопрос доверия администратору данного сервера. Сервер могут сломать, сам админ может подбарижить данными и т.д.
  2. XMPP набирает популярность в качестве внутрикорпоративного обмена. Может быть сервер и не имеет выхода в Интернет, но никто не застрахован от приезда Party-van с маски-шоу внутри
  3. Цифровая подпись повышает надёжность идентификации. То есть вы точно знаете что в данный момент за компьютером сидит именно тот человек, который вам дал ключ, а не тот кто ломанул его аккаунт или воспользовался его отсутсвием его за компьютером

Читать дальше →
Всего голосов 67: ↑66 и ↓1+65
Комментарии80

Безопасный код: Работа с пользовательским вводом

Время на прочтение5 мин
Количество просмотров5.6K

(ч2. Подделка межсайтовых запросов; ч2. Работа с базой данных)

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

Некоторые сценарии XSS атак



Устойчивая атака


  • Вова создает частицу контента на сайте Пети.
  • Когда Маша просматривает этот контент, Вовин XSS ворует Машины куки.
  • Теперь Вова может пробраться на сайт, используя Машину сессию.
  • Чем более людей увидит этот контент, тем более успешной можно считать атаку. Максимум достигается путем создания противоречивых холиварных тем на сайте и т.д.
Читать дальше →
Всего голосов 75: ↑69 и ↓6+63
Комментарии26

Безопасный код в Друпале: Подделка межсайтовых запросов

Время на прочтение5 мин
Количество просмотров1.4K


(ч2. Работа с базой данных; ч3. Работа с пользовательским вводом)

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

Итак, подделка межсайтовых запросов (анг. Сross Site Request Forgery, или, сокращенно, CSRF): что это такое и с чем его едят.

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

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

Одно из применений СSRF — эксплуатация пассивных XSS, обнаруженных на другом сервере. Так же возможны отправка спама от лица жертвы и изменение каких-либо настроек учётных записей на других сайтах(например, секретного вопроса для восстановления пароля).
Читать дальше →
Всего голосов 56: ↑50 и ↓6+44
Комментарии37

Доширак: Проект первый. Что такое Конфитюр и с чем его едят?

Время на прочтение1 мин
Количество просмотров1.1K
image

Три месяца назад мы объявили об уходе в свободное плавание, пообещав сделать за полгода три проекта. Сегодня мы хотим представить на Хабрахабре первый из наших проектов.
Читать дальше →
Всего голосов 110: ↑91 и ↓19+72
Комментарии98

Простое сравнение изображений с помощью php

Время на прочтение3 мин
Количество просмотров27K
Алгоритм возможно не новый, и не является идеалом, но, на удивление, работает. Никаких графов и корелляции.

Для начала, стоит отметить, что сравнение очень приблизительно (по крайней мере, на данном этапе), временами две совершенно разные фотографии оказываются похожими процентов на 60%, так же не учитываются жесткие модификации (повороты, инверсия, обрезка) – для этого нужно доводить и доводить. Лично для меня самым главным оказались два параметра: скорость, независимость от разрешения изображения и возможность сравнивать «изображения» прямо в базе данных.
Читать дальше →
Всего голосов 161: ↑153 и ↓8+145
Комментарии64

Реинициализация кластера баз данных PostgreSQL

Время на прочтение4 мин
Количество просмотров32K

Предмет описываемой проблемы



При работе с базой данных в PostgreSQL необходимо не забывать, в какой локали (locale) был инициализирован кластер БД — так в постгре называется директория (обычно /var/lib/pgsql/data), в которой хранятся данные всех баз этой установки PostgreSQL.

Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии11

Информация

В рейтинге
Не участвует
Откуда
Чернигов, Черниговская обл., Украина
Дата рождения
Зарегистрирован
Активность