Архив за 01 августа 2017 - 6

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

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

Эволюция паролей: руководство по аутентификации в современную эпоху - 1

Но такое положение дел сложилось в шестидесятые годы прошлого века, и с тех пор много воды утекло. Вплоть до последней пары десятилетий у нас было очень небольшое количество учетных записей с ограниченным числом связей, что делало спектр угроз достаточно узким. Навредить вам могли только те, кто находился в непосредственной близости — то есть люди, которые имели возможность напрямую, физически получить доступ в систему. Со временем к ним присоединились и удаленные пользователи, которые могли подключиться через телефон, и спектр угроз расширился. Что произошло после этого, вы и сами знаете: больше взаимосвязей, больше аккаунтов, больше злоумышленников и больше утечек данных, особенно в последние годы. Изначальная схема с простой сверкой символов уже не кажется такой уж блестящей идеей.
Читать полностью »

В прошлые разы мы рассмотрели механизм индексирования PostgreSQL, интерфейс методов доступа, и два метода: хеш-индекс и B-дерево. В этой части займемся индексами GiST.

GiST

GiST — сокращение от «generalized search tree». Это сбалансированное дерево поиска, точно так же, как и рассмотренный ранее b-tree.

В чем же разница? Индекс b-tree жестко привязан к семантике сравнения: поддержка операторов «больше», «меньше», «равно» — это все, на что он способен (зато способен очень хорошо!). Но в современных базах хранятся и такие типы данных, для которых эти операторы просто не имеют смысла: геоданные, текстовые документы, картинки…

Тут на помощь и приходит индексный метод GiST. Он позволяет задать принцип распределения данных произвольного типа по сбалансированному дереву, и метод использования этого представления для доступа по некоторому оператору. Например, в GiST-индекс можно «уложить» R-дерево для пространственных данных с поддержкой операторов взаимного расположения (находится слева, справа; содержит и т. п.), или RD-дерево для множеств с поддержкой операторов пересечения или вхождения.

За счет расширяемости в PostgreSQL вполне можно создать совершенно новый метод доступа с нуля: для этого надо реализовать интерфейс с механизмом индексирования. Но это требует продумывания не только логики индексации, но и страничной структуры, эффективной реализации блокировок, поддержки журнала упреждающей записи — что подразумевает очень высокую квалификацию разработчика и большую трудоемкость. GiST упрощает задачу, беря на себя низкоуровневые проблемы и предоставляя свой собственный интерфейс: несколько функций, относящихся не к технической сфере, а к прикладной области. В этом смысле можно говорить о том, что GiST является каркасом для построения новых методов доступа.
Читать полностью »

Начинаем работать с Ruby on Rails в Docker - 1

Docker замечательно справляется с изолированием приложений и их окружений, облегчая распространение и репликацию состояний между различными средами (dev, test, beta, prod и т. д.). Его использование позволяет избавиться от проблемы «на моей машине все работает» и помогает с легкостью масштабировать приложение по мере его роста.

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

В этой статье мы возьмем простое приложение на Rails и подготовим его для использования в Docker-контейнере («докеризуем»).

Читать полностью »

В июне Федеральная налоговая служба (ФНС) снова заблокировала расходные операции по семи банковским счетам нескольких компаний издательского дома ACMG Александра Федотова — «Арт ком медиа», которая является учредителем журналов SNC, Golf Digest, Objekt Russia, Interni, и «Медиа групп», учредитель Numero. Об этом сообщаютЧитать полностью »

Тизерные рекламные сети уже давно расползлись по Рунету и несколько приелись народу. Паблишеры стали жаждать «нативки» и «рекомендаций».

Первый непубличный релиз дал возможность избранным партнёрам Directadvert.ru попробовать Giraff.io на своих страницах полгода назад. Это продукт «три в одном» — паблишер устанавливает на страницу блок рекомендаций и решает, Читать полностью »

ZFS должна быть классной, но меня немного бесит, что она словно застряла в прошлом — даже до того, как её признали крутой и лучшей файловой системой. Она негибкая, ей не хватает современной интеграции с флеш-памятью и она не поддерживается напрямую большинством операционных систем. Но я храню все свои ценные данные на ZFS, поскольку именно она обеспечивает наилучший уровень защиты для условий SOHO (малый офис/домашний офис). И вот почему.

ZFS — лучшая файловая система (пока) - 1
Первая директива систем хранения: не возвращать неправильные данные!
Читать полностью »

Свершилось, друзья! Кибатлетика — первое в России соревнование людей с высокотехнологичными протезами — успешно прошло в Москве 15 июня 2017 года. Лично я принял участие в соревновании с миоэлектрическим протезом Страдивари, разработанным нашей замечательной командой. За итогами первых соревнований киборгов — добро пожаловать под кат.
Читать полностью »

Про Reflect API доступным языком - 1

Всем привет! Недавно услышал, как одни молодые фронтендеры пытались объяснить другим молодым фронтендерам, что такое Reflect в JavaScript. В итоге кто-то сказал, что это такая же штука, как прокси. Ситуация напомнила мне анекдот:

Встречаются два майнера:
— Ты что-нибудь понимаешь в этом?
— Ну объяснить смогу.
— Это понятно, но ты что-нибудь понимаешь в этом?

Вот и с Reflect в JS для кого-то получилась такая же ситуация. Вроде бы что-то говорят, а для чего —  непонятно. В итоге я подумал, что стоит об этом рассказать еще раз простым языком с примерами.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js