Как стать автором
Обновить
46
0
Владислав Раструсный @FractalizeR

CTO

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

OAuth 2.0 простым и понятным языком

Время на прочтение7 мин
Количество просмотров839K
Логотип OAuth 2.0

На хабре уже писали про OAuth 1.0, но понятного объяснения того, что такое OAuth 2.0 не было. Ниже я расскажу, в чем отличия и преимущества OAuth 2.0 и, как его лучше использовать на сайтах, в мобильных и desktop-приложениях.

Что такое OAuth 2.0


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

Читать дальше →
Всего голосов 168: ↑153 и ↓15+138
Комментарии44

Фонетические алгоритмы

Время на прочтение9 мин
Количество просмотров45K
Фонетические алгоритмы сопоставляют двум словам со схожим произношением одинаковые коды, что позволяет осуществлять сравнение и индексацию множества таких слов на основе их фонетического сходства.

Часто довольно трудно найти в базе нетипичную фамилию, например:
— Леха, поищи в нашей базе Адольфа Швардсенеггера,
Шворцинегира? Нет такого!
В этом случае использование фонетических алгоритмов (особенно в сочетании с алгоритмами нечеткого сопоставления) может значительно упростить задачу.

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

В этой статье я рассмотрю наиболее известные алгоритмы, такие как Soundex, Daitch-Mokotoff Soundex, NYSIIS, Metaphone, Double Metaphone, русский Metaphone, Caverphone.
Читать дальше →
Всего голосов 154: ↑153 и ↓1+152
Комментарии35

Как делали новый дизайн сайта Expression Engine

Время на прочтение11 мин
Количество просмотров7.5K
Представляю вашему вниманию перевод статьи "Redesigning the ExpressionEngine Site" от Jesse Bennett-Chamberlain. Перевели в компании UXDepot. Специально для пользователей Хабрахабра с одобрением издания Digital Web Magazine.


Офицер-пограничник на границе между США и Канадой: «Вы направляетесь по делам или же отдыхать, сэр?»
Я: По делам.
Офицер: Уточните причину, пожалуйста.
Я: Я веб-разработчик и еду на встречу со своим клиентом в штате Орегон для обсуждения проекта.
Пограничник: Как называется компания вашего клиента?
Я: «pMachine».
Пограничник: Вы везете какие-либо сайты с собой?
Я: *недоумевающий взгляд*
Пограничник: В вашей машине есть какие-либо сайты, сэр?
Я: Хмммммм… нет, сайты сейчас на серверах. В машине я ничего не везу.
Пограничник: Тогда как вы хотите показать их вашему клиенту?
Я: Хмм… вообще-то я просто еду на встречу с клиентом для обсуждения сайта, пока я ему ничего не везу.
Пограничник: Хорошо, тогда наслаждайтесь поездкой, сэр.

(30 секунд молчания)

Хизер: В следующий раз скажи, что мы едем на отдых.
Читать дальше →
Всего голосов 217: ↑204 и ↓13+191
Комментарии21

Автоматизация логирования входов в функции

Время на прочтение2 мин
Количество просмотров4.2K
У нас в компании с незапамятных времен существует гласно-негласное правило о логировании входа в каждую функцию. И ладно бы это ограничивалось простой строчкой Logger.LogEntering() в их начале (хотя, наверное, тоже надоело бы), так еще и наш «замечательный» доморощенный логгер получать названия функций из которых он вызван не умеет, и как следствие, эта единственная строчка разрасталась до эпического Logger.Log(«Classname.FunctionName — Entering») or something like that.

Неудивительно, что под воздействием недавних топиков о Mono.Cecil и родилась задача автоматизации процесса.

Читать дальше →
Всего голосов 40: ↑30 и ↓10+20
Комментарии19

Кроссдоменный AJAX

Время на прочтение1 мин
Количество просмотров112K
На вопрос, как сделать AJAX запрос к другому домену, я всегда отвечал, что никак, и предлагал в качестве альтернативы jsonp, прокси, флеш, фреймы. Но, оказывается, большинство современных браузеров (IE8+, FF3.5+, Chrome 6+ и Safari 4+) вполне поддерживает кроссдоменный XMLHTTPRequest.

Работает это на удивление просто
Всего голосов 97: ↑90 и ↓7+83
Комментарии22

Оценка вредоносности файлов с помощью песочниц: Часть 2. Анализ в оффлайн

Время на прочтение8 мин
Количество просмотров20K
Итак, ранее мы познакомились с основными ресурсами, доступными в сети для анализа файлов.

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

— Доступ к интернет затруднителен
— Онлайн-песочницы в данный момент перегружены, а выполнение анализа критично по времени
— Выполнение в онлайн песочницах блокируется изучаемым файлом
— Необходима более тонкая настройка режима выполнения файла при анализе, например — увеличение времени задержки с момента запуска

В этом случае на помощь нам приходит оффлайн-решение проблемы.
Об этом мы и поговорим сегодня.
Всего голосов 30: ↑28 и ↓2+26
Комментарии1

Оценка вредоносности файлов с помощью песочниц: Часть 1. Онлайн-сервисы

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

Итак, ситуация: у нас есть странный файл с подозрением на вредоносность, при этом существующий мультисканеры типа VirusTotal не дают никакой информации. Что же делать?
Читать дальше →
Всего голосов 89: ↑86 и ↓3+83
Комментарии20

Математическая морфология

Время на прочтение6 мин
Количество просмотров60K
Воспользовавшись поиском, я с удивлением обнаружил, что на Хабре совсем нет статей, описывающих аппарат математической морфологии, а ведь этот аппарат незаменим в области низкоуровневой обработки изображений. Если вам это интересно, прошу под кат.
Читать дальше →
Всего голосов 75: ↑68 и ↓7+61
Комментарии5

sjFilemanager — бесплатный AJAX файл менеджер. Колесо или ноу-хау?

Время на прочтение2 мин
Количество просмотров9.5K
Начиная с тех времен когда я только познавал всю прелесть программирования у веб, у меня возникала задача создания файлового менеджера для tinyMCE. Но изобретать велосипед — это пустая трата времени, поэтому я часто обходился какой-то простой реализацией или сторонним плагином, вроде этого. На тот момент Image Manager 1.1 был еще бета версией. К сожалению со временем этот вариант меня перестал устраивать по ряду причин и пришлось реализовать собственное решение.
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии16

Защита JPEG от повторного сжатия

Время на прочтение1 мин
Количество просмотров2.6K
Многие фотохостинги и веб-прокси пережимают файлы JPEG для ускорения загрузки. В связи с этим у специалистов из Кембриджа появилась идея адаптировать известный алгоритм Товальдса по защите купюр от копирования к JPEG-изображениям. Они разработали сетку, которая генерирует муар при повторном сжатии (демонстрация на примере Google WAP прокси).
Оригинальное изображение После рекомпрессии
Если вы находитесь за файрволом с рекомпрессиией, то надпись VOID будет на обоих изображениях.
Читать дальше →
Всего голосов 165: ↑132 и ↓33+99
Комментарии78

Новые уязвимости доступа к файлам в PHP

Время на прочтение8 мин
Количество просмотров30K
Какой-нибудь год назад все просто с ума сходили от Error-based MySQL, а unserialize казался чем-то сложным и не встречающимся в реальной жизни. Теперь это уже классические техники. Что уж говорить о таких динозаврах как нуль-байт в инклудах, на смену которому пришел file name truncated. Исследователи постоянно что-то раскапывают, придумывают, а тем временем уже выходят новые версии интерпретаторов, движков, а с ними – новые баги разработчиков.
По сути, есть три метода найти уязвимость: смекалка (когда исследователь придумывает какой-нибудь трюк и проверяет, работает ли он на практике), анализ исходного кода и фаззинг. Об одном интересном китайском фаззинге и его развитии с моей стороны я и хочу рассказать.

Список функций и результаты проверки
Читать дальше →
Всего голосов 138: ↑122 и ↓16+106
Комментарии52

Полулегальное воровство печеньками

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров56K
Часть хабралюдей честные и бескорыстные и привлекают их всякие техническия штучкэ. Но кое-кто кое-где у нас порой и не столь бескорыстен. Честно жить не хочет. Я расскажу вам о том, как можно по сути воровать, но при этом не выходя за рамки уголовного кодекса. Эдак с $15,000,000.
Читать дальше →
Всего голосов 312: ↑295 и ↓17+278
Комментарии135

Underscore.js — библиотека, которая так хороша, что должна быть вне закона

Время на прочтение3 мин
Количество просмотров50K
Каждый, кому приходилось писать объемные куски осмысленного кода на javascript, рано или поздно понимал, что ему многого не хватает в этом языке или просто неудобны некоторые врожденные конструкции. Для сглаживания шероховатостей применяются jQuery, Prototype, MooTools etc. Кто-то уже мало представляет себе, как можно кодить без них. Сегодня я расскажу о еще одной маааленькой библиотечке, которая делает мир javascript-программиста еще прекраснее. Речь пойдет о Underscore.js
Go ahead, make my day
Всего голосов 177: ↑163 и ↓14+149
Комментарии51

Бэкапы через bacula на Amazon S3

Время на прочтение7 мин
Количество просмотров12K
Как известно, все люди делятся на два вида: те, кто ещё не делает бэкапы, и те, кто их уже делает. У тех, кто только начинает делать бэкапы, первым обычно встаёт вопрос о том, каким способом архивировать данные. Простые варианты (вручную нарезать болванки, целиком архивировать каталоги на другие серверы) рассматривать не будем — у них весьма скромные возможности по индексированию и поиску архивных файлов. Вместо этого обратимся к автоматическим системам бэкапов, в частности bacula. Данная статья не рассматривает вопрос, почему bacula. Главные причины — она распространяется под свободной лицензией, доступна для кучи платформ и обладает огромной гибкостью.

Второй вопрос после выбора системы архивации — выбор места, где хранить бэкапы. Bacula позволяет использовать стриммеры, компакт-диски, писать архивы в FIFO-устройства и в обычные файлы. Стриммер удобен на корпоративных серверах, где есть постоянный физический к железу. Хранение архивов в файлах подойдёт, когда объём архивов не превышает объёма жёстких дисков, плюс для надёжности хранения желательно делать RAID-массив с избыточностью, а то и несколько физических серверов для бэкапов, желательно в разных помещениях. Иначе всё это до первого пожара. Нарезать на болванки — это домашний вариант, главный недостаток которого — необходимость регулярного втыкания свежих дисков. Мы же настроили bacula для архивации данных на Amazon S3.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии21

Создаем свою файловую систему в ОС Windows на .Net

Время на прочтение3 мин
Количество просмотров19K
Существует великое множество файловых систем. Это и файловые системы для носителей информации (FAT*, NTFS, ext* и т.д.), и сетевые файловые системы (NFS, CIFS и т.д.), и виртуальные файловые системы, и великое множество других. А появлялась ли у тебя, %habrauser%, потребность в своей, еще несуществующей файловой системе? О том, как ее сделать для ОС Windows на managed-коде (.net), и пойдет речь.
Читать дальше →
Всего голосов 52: ↑46 и ↓6+40
Комментарии60

Лень — механизм

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

Начинается рабочая неделя для большинства жителей России и близится зимняя сессия. В связи с этим решил описать детальный механизм лени человека.
Однако хочу вас обнадежить, лень является лишь проявлением работы нашего подсознания, а значит ее можно контролировать и «настраивать» как вам того желается. Вы сами сможете в этом убедиться, когда поймете механизм ее возникновения.
Читать дальше →
Всего голосов 159: ↑145 и ↓14+131
Комментарии123

Cards Heaven — вам открытка. Печатная. Бесплатно

Время на прочтение2 мин
Количество просмотров860
UPDATED: Дорогие хабровчане, все ваши открытки были отправлены.
Так что ждите писем.
В конце топика ответы на все вопросы и рассказ о том, как все было.
_________________________________________________________________
Здравствуйте, хабровчане.

Этот топик о следующих четырех печатных открытках, которые можно отправить в любую точку мира. Бесплатно.
image image image image
Картинки кликабельны.

Близится Рождество, за ним Новый Год, потом снова Рождество, потом Старый Новый Год, и так далее.
Сейчас самое время отправлять открытки, и если кому-то достаточно виртуального деда мороза или елки, то многим наверняка было бы приятнее получить красивую бумажную открытку, которую можно подержать в руках, а потом использовать в качестве закладки в книге. А еще можно вынуть вкладыш с поздравлением и снова кому-то эту открытку подарить. Если вас интересуют такие открытки, то добро пожаловать под кат.
Читать дальше →
Всего голосов 99: ↑82 и ↓17+65
Комментарии59

Приложения, которые «сами себе на уме» или что такое «Opinionated Software»

Время на прочтение2 мин
Количество просмотров1.7K
Итак, джентльмены, прошу минуточку внимания!

В последнее время, обсуждая какие-нибудь технологические или архитектурные штукенции, в спорах приходилось частенько упоминать, что «это же просто opinion», и давать ссылку на статью из Getting Real под названием Make Opinionated Software (по ссылке можно не ходить, ниже перевод той самой статьи).

Это простая и интересная концепция, которую я хотел бы донести до всех, ну а особенно — до руководителей проектов, чьи команды с огнем у рта и с пеной в глазах (или наоборот?) изобретающих собственные велосипеды, фреймворки, платформы, пытаясь сделать все и сразу, на все случаи жизни — все то, что кажется очень нужным, необходимым и «без этого никак».

В свое время тоже (и не раз) пройдя испытания в велосипедостроении, я уже давно придерживаюсь того же мнения, что и «37 сигналов». И они говорят нам:

Делайте приложения, которые сами себе на уме
Всего голосов 32: ↑23 и ↓9+14
Комментарии30

Как выглядит китайская клавиатура

Время на прочтение8 мин
Количество просмотров389K
Вы, вероятно, представляли ее себе как целый орган — грандиозное сооружение длиной в пару метров с сотнями и тысячами клавиш. На самом деле, большинство китайцев используют обычную клавиатуру с латинской раскладкой QWERTY. Но как с помощью нее можно набрать такое несметное количество различных иероглифов? Мы попросили рассказать об этом нашу сотрудницу Юлию Дрейзис. Ее с Китаем связывают и давняя любовь, и работа.

История вопроса: печатные машинки


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

Долгое время набор осуществлялся по принципу «на каждый иероглиф — отдельный печатный элемент». Поэтому работать приходилось с машинками-монстрами вроде такой:

image
Печатная машинка фирмы «Шуангэ», 1947 год (принцип действия придуман японцем Киота Сугимото в 1915 году).

Читать дальше →
Всего голосов 242: ↑237 и ↓5+232
Комментарии213

Казнить нельзя помиловать

Время на прочтение3 мин
Количество просмотров13K
Пару лет назад я прочитал замечательную книгу Линн Трасс (Lynne Truss) о пунктуации «Eats, Shoots & Leaves» (в русском переводе «Казнить нельзя помиловать»). Автор увлечённо рассказывает о роли знакомых нам знаков препинания, прежде всего, в английском языке. Дополнить этот рассказ исключительно русскими реалиями могут многие люди, но в моём распоряжении есть кладезь всемирной мудрости – копилка эвристик системы распознавания. Поэтому у меня есть возможность рассказать подробнее о мировых традициях постановки знаков препинания. Может быть, кому-то это будет любопытно.
Читать дальше →
Всего голосов 63: ↑59 и ↓4+55
Комментарии42

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Chief Technology Officer (CTO)