Архив за месяц Май 2018

Автор:IT Press

Как мы в Тинькофф использовали Windows Hello для аутентификации пользователя

Как мы в Тинькофф использовали Windows Hello для аутентификации пользователя

Windows Hello

Windows Hello – это технология биометрической аутентификации пользователя по отпечатку пальца, сетчатки глаза, трёхмерному сканированию лица и даже по венозной схеме ладони.

В сфере оказания финансовых услуг, важна безошибочная и безопасная аутентификация пользователя. Для авторизации мы используем двухфакторную систему из связки логина и пароля или номера телефона и пароля с подтверждением по коду, отправленному на привязанный номер мобильного телефона. Для дальнейшего упрощения доступа в авторизованную зону используется 4х значный ПИН-код.

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

  • Проверить возможность использования Windows Hello.
  • Проверка пользователя с помощью Windows Hello, что позволяет связать авторизованного Windows пользователя с нашим клиентом.
  • Кэширование созданного ранее ПИН-кода по идентификатору пользователя в защищённой области.
  • При последующих запусках приложения с авторизованным пользователем, автоматически запускается процедура аутентификации пользователя посредством Windows Hello. В случае успешной аутентификации из защищённой области запрашивается кэшированный ПИН-код.

Давайте рассмотрим каждый шаг подробнее на примерах кода.
Читать дальше →
Как мы в Тинькофф использовали Windows Hello для аутентификации пользователя

Автор:IT Press

Из Chrome исчезнет значок «Защищено» для сайтов HTTPS, и это правильно

Из Chrome исчезнет значок «Защищено» для сайтов HTTPS, и это правильно
{$inline_image}

Несколько месяцев назад разработчики Chrome объявили, что в июле 2018 года начнут помечать как небезопасные все страницы HTTP. Значок «Не защищено» (“Not secure”) появится в адресной строке рядом с URL.

Это важное нововведение, потому что людей приучают избегать сайтов, которые не установили сертификат TLS для шифрования трафика. Ведь такие сайты действительно подвергают опасности пользователей. Например, провайдеры и другие злоумышленники могут внедрять в незашифрованный трафик рекламу, криптомайнеры и другой вредоносный контент. В опросе на Хабре 55% пользователей согласились, что все сайты должны шифровать трафик по HTTPS.

Сейчас стало известно об ещё одном изменении, смысл которого сразу не так очевиден. Оказывается, с версии Chrome 69 (сентябрь 2018 года) у защищённых сайтов HTTPS исчезнет индикатор «Защищено». Спрашивается, почему?
Читать дальше →
Из Chrome исчезнет значок «Защищено» для сайтов HTTPS, и это правильно

Автор:IT Press

Анатомия и физиология HyperCard

Анатомия и физиология HyperCard

Не уверен, что кого-то интересует, как был устроен HyperCard. Но не написать об этом не могу. Что-то из серии “Вы хотите поговорить об этом?”.

Продолжение, предыдущая часть здесь, начало тут.

Концептуальная основа HyperCard – стопка карточек, с графикой и текстом, с элементами управления и… связь между мирами, разделенными сотнями световых лет.

На самом деле HyperCard намного интереснее, чем звезды и межзвездные пространства. О чем Сириусу говорить с Бетельгейзе?

Элементы “машинки” HyperCard

В чем все-таки секрет притягательной силы HyperCard, ведь им “заболело” множество людей. Что-то в нем было такое, психоделическое и трансцендентное?

Попробуем разобраться. Поверим алгеброй гармонию, так сказать.

HyperCard – это “конструктор для создания приложений”. Такое виртуальное лего. Состоит он из очень небольшого набора тиражируемых пользователем элементов (это стэки, фоны, карточки, поля и кнопки) и небольшого же набора инструментов (несколько специальных стэков, экран Recent и Message Box).

Тиражируемые элементы

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

Стэк (stack) – это одновременно единица файловой системы, документ HyperCard, файл с типом ‘STAK’ и кодом создателя ‘WILD’, и область обитания всех остальных тиражируемых элементов. Вне стэка они не существовали. У HyperCard тип был, естественно, ‘APPL’, а код создателя, которым он и был – такой же, как у повелеваемых им документов, ‘WILD’.

Возникает вопрос: а почему не ‘HYPE’? Что за дикость (“wild” по английски “дикий”)? Ответ на этот вопрос — в конце статьи.

Стэки бывали очень разными по размеру и полезности. Все приложения, создаваемые в HyperCard (стэквер), были именно стэками. В их числе — такие как Myst компании Broderbønd, Focal Point и Business Class Дэнни Гудмана, прообраз wiki от Говарда Каннингема – к 2004 году существовали сотни тысяч более чем приличных программ, которые были всего лишь стэками.

В HyperCard 2.2 появилась возможность превращения стэка в автономное приложение, что еще больше приблизило разработку стэков к промышленному программированию, правда, лишив всех остальных возможности разобрать чужую программу и посмотреть, в деталях, как она устроена. Чем-то всегда приходится жертвовать.

Фон (background) – это объединение нескольких карточек (любого их числа) и, кроме того, комбинация графики, полей и кнопок, повторяющихся на всех карточках входящих в этот фон. Для редактирования фона в HyperCard был предусмотрен специальный режим, а для ясности он еще и выделялся прерывистой рамкой вокруг планки меню, похожей на кант погон вольноопределяющихся в российской императорской армии.

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

Карточка (card) – последний из тиражируемых элементов, состоящий из других элементов. Что-то похожее по смыслу на экраны в мобильных операционных системах. В карточке объединялись элементы фона, к которому она принадлежит, и её собственные. И, кроме того, то, что видел на экране своего компьютера пользователь HyperCard, за очень редким исключением (экран Recent, например), было одной из карточек.

Другие элементы в карточке – это поля и кнопки.

Поле (field) – единственный способ существования редактируемого текста в HyperCard. Все остальные тексты (графика) в лучшем случае могли редактироваться только в процессе их создания. Поля состояли из теоретически неограниченного числа строк. На практике в классической системе Mac’ов стандартная (и очень качественная) структура для хранения и обработки текста ограничивала его размер 32-мя килобайтами.

В программах, которые должны были иметь дело с бóльшими текстами, это было одной из существенных проблем, которая успешно решалась (но способы её решения держались в секрете). В HyperCard до преодоления 32-килобайтного барьера дело не дошло. Не было необходимости.

Если поле принадлежало фону, введенный в него текст хранился в памяти карточки.

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

Инструменты

К инструментам можно было бы отнести все команды, предлагаемые в меню приложения HyperCard, вплоть до Copy/Paste и создания/удаления/копирования карточек, но не будем впадать в крайности. Хотя, если бы я писал книгу, про некоторые из них я бы обязательно написал.

Одним из самых важных принципов чудо-приложения, вдохновленного трансцендентным духом вселенского разума, была навигация между карточками. Те самые связи между тем, что на первый взгляд может казаться никак не связанным одно с другим. Вот не смог я удержаться без намеков на звездную ночь в Лос Гатосе, в паре кварталов от того самого гаража родителей Стива Джобса…

Экран Recent показывал уменьшенные изображения 42 карточек, на которых пользователь побывал последними. Если какая-то карточка посещалась более чем один раз, Recent её показывал только один раз. Это был модальный экран – выйти из него можно было только выбрав какую-нибудь из карточек. По-моему, это не изменилось и в HyperCard 3.0, навечно оставшемся публичной альфа-версией.

На самом деле, никакой эзотерики в этом навигационном инструменте не было. Это одна из любимых идей Джефа Раскина, а Билл Аткинсон, будучи еще студентом, прослушал курс графического пользовательского интерфейса у профессора Раскина.

К специальным стэкам классическое HyperCard’оведение (все издания гудмановского “Полного руководства HyperCard”, рассыпанные в бессмысленные биты многочисленные гайды Apple Computer и мои собственные труды из начала 90-х последнего века прошлого тысячелетия), относит Home и почему-то Help.

Последний был замечательным, я его даже переводил на русский, и больше всего сегодня я рад тому, что он, по-видимому, не сохранился. Если у кого-то есть русский перевод Help, по-тихому пришлите его мне… И тс-с-с! Вдруг это мой!!!

А вот Home действительно играл почти мистическую роль в HyperCard. Настолько важную, что мое первое впечатление от www было омрачено отсутствием в Паутине самой главной страницы. Home был первой карточкой, открываемой HyperCard. В ней были собраны все (по мнению коммерсантов Apple) важные “линки” к самым важным стэкам. К счастью, эту карточку можно было редактировать, в её фон можно было добавлять любое количество дополнительных страниц, прогибая изменчивый мир под себя.

Это был центр навигации, и это было здорово.

Message Box – это однострочный windoid (окно, которое не окно, в Mac’овской системе до сих пор есть их аналог, “плавающие окна”, парящие над пользовательским интерфейсом и всеми другими окнами… По правилам Human Interface Guide, такие окна не должны быть большими и закрывать слишком большое пространство под собой. Узнаю, кто придумал в таких вот плавающих окнах выводить Mac’овский Help, размером в 3/4 экрана…, в который можно было вводить команды на языке HyperScript.

И не только. Это был еще и калькулятор. Калькулятор с доступам к тригонометрическим и логарифмическим функциям. Использовался он и для борьбы с блокировкой ресурсов… И много для чего еще.

HyperScript, чуть не ставший WildScript, я опишу в отдельной статье.

Объектно-ориентированное пространство

HyperCard была объектно-ориентированной, без возможности создания новых классов.

Классов официально было пять:

  • стэк;
  • фон;
  • карточка;
  • поле;
  • кнопка.

Объекты этих классов обменивались сообщениями, между собой и с “системой”, в её роли выступал объект скрытого, приватного класса – само приложение HyperCard.

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

Расширения

В Mac’е процедуры отрисовки и управления многими элементами интерфейса системы были… заменяемы и переопределяемы. Код стандартных окон, контролов, меню и даже планок меню располагался в кодовых ресурсах, типов WDEF, CDEF, MDEF и им подобных.

Я не уверен, что это началось именно с HyperCard, просто более ранних примеров я не помню – по тому же пути пошел и HyperCard. Для расширения стандартных возможностей приложения в конкретных стэках, в их “ответвление ресурсов” можно было добавить свой (или свои) ресурсы типа XCMD и XFCN.

Правда, сначала их надо было или найти где-нибудь, или написать. В конце 80-х этот код должен был умещаться в 32 K, но для машинного кода это довольно много.

Разница между XCMD и XFCN только в том, что последний – функция, возвращающая значение. Назывались подобные ресурсы “кодовыми”. Теоретически такой ресурс можно было набрать в ResEdit, но… о сверхспособностях поговорим на другом ресурсе.

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

WildCard vs Apple HyperCard

Все просто: Билл Аткинсон назвал придуманное им приложение WildCard, поскольку идея пришла к нему сама и неожиданно, как приходят дикие звери – но когда дело уже шло к релизу и за легализацию нового продукта взялись профессионалы, выяснилось, что эта торговая марка уже занята.

Казалось бы, какие пустяки – сама Apple использует чужую торговую марку (Apple Corps, звукозаписывающей компании Beatles, фактически собственности Пола Маккартни), а в наши дни в мире существуют две трехбуквенные системы, которые называются iOS и IOS.

Объяснять, что такое iOS, на AppleInsider’е вроде бы неуместно. IOS (все буквы заглавные) — это “межсетевая операционная система” компании Cisco, для маршрутизаторов и сетевых коммутаторов этой компании. Для признания юристами достаточно и куда более дальних совпадений.

Но, как говорится, quod licet iovi… Apple и iOS были нужны Стиву Джобсу, а с ним мало кто решался спорить, даже в конце 70-х. Поэтому конфликты торговых знаков уладили в суде, за приличные суммы денег и на каких-то условиях. Причем дело Apple vs Apple несколько раз возвращалось в суд – Apple, которая раньше была Apple Computer, просто рецидивист какой-то. Именно она раз за разом нарушала достигнутые ранее договоренности с Apple Corps, которая немедленно и с огромным удовольствием обращалась с жалобами в суд.

Но, как говорится, что дозволено Юпитеру… Судиться с владельцами торговой марки WildCard из-за незаконнорожденной (пусть и обласканной главой компании) программы и программиста, пусть очень ценного для компании, никто не собирался. Совет директоров этого бы не понял.

Анатомия и физиология HyperCard

Автор:IT Press

Новости Apple, 257 выпуск: разноцветный iPhone и Touch ID в дисплее

Новости Apple, 257 выпуск: разноцветный iPhone и Touch ID в дисплее

Представляем вашему вниманию очередной выпуск информационной программы Новости Apple. Сегодня речь пойдет Touch ID в дисплее, цветом iPhone и многом другом!

1. Платежный сервис Apple Pay заработал на территории Украины. Первым из украинских банков, карты которого можно добавить в Wallet, стал «Приватбанк».

2. В популярном мессенджере Telegram вскоре может появиться возможность осуществлять групповые звонки. Упоминание данной функции обнаружилось в обновлении кода на GitHub. Информация с соответствующим скриншотом появилась в канале Telegram Beta. Судя по всему, разработчики мессенджера всерьез рассматривают введение групповых аудиозвонков.

3. Экраны iPhone X и iPad Pro были признаны лучшими в индустрии. Это стало известно из пресс-релиза Society for Information Display, в котором она анонсировала победителей в рамках мероприятия Display Week. Эксперты отметили наличие инновационных технологий, а также похвалили общее качество дисплеев.

10,5 и 12,9-дюймовые модели iPad Pro получили премию «Дисплей года» и были признаны лучшими среди всех планшетов. Большую роль в этом сыграли технологии True Tone и ProMotion. Планшеты могут похвастаться естественной цветопередачей при любом освещении, а благодаря дисплею 120 Гц обеспечивается плавная и четкая картинка в любых ситуациях. Кроме того, была отмечена высокая скорость отклика при работе с Apple Pencil.

iPhone X был номинирован на лучший экран среди всех смартфонов. Современный дизайн без рамок, новая технология OLED, которая была впервые применена в iPhone, поддержка HDR и HDR10, высокая контрастность, расширенный цветовой диапазон DCI-P3, а также наличие True Tone – всё это позволило одержать безоговорочную победу над конкурентами.

Награждение победителей состоится 23 мая 2018 года в рамках мероприятия Display Week.

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

Apple не будет первой, если внедрит подобную технологию в свои смартфоны. Например, Vivo X20 Plus UD уже сейчас обладает подэкранным сканером отпечатков пальцев. Данный модуль является оптическим, когда как в Apple планируют использовать усовершенствованные ультразвуковые датчики

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

5. Apple планирует использовать дополнительные цвета в новом недорогом iPhone, пишет издание 9to5Mac со ссылкой на инсайдеров рынка. По сведениям журналистов, смартфон будет представлен в синем, желтом и розовом цвете. Про использование пластика вместо алюминия (как было в 5c) пока никто не говорит. Тем более это противоречит стратегии Apple, которая позиционирует себя как «зеленая» компания.

Два новых iPhone с OLED-дисплеями будут нацелены на премиальный рынок, тогда как третий — с дисплеем TFT-LCD — предназначен для среднего сегмента.

Самый доступный iPhone 2018 модельного года с диагональю экрана 6,1 дюйма, по мнению аналитиков, будет оценен производителем в 799 долларов. Снизить цену до таких пределов позволит отказ от OLED-матрицы в пользу LCD и, возможно, сокращение объема ОЗУ до 2 ГБ. В остальном смартфон не будет отличаться от более дорогих моделей.

Новости Apple, 257 выпуск: разноцветный iPhone и Touch ID в дисплее

Автор:IT Press

Дайджест интересных материалов для мобильного разработчика #253 (14 мая — 20 мая)

Дайджест интересных материалов для мобильного разработчика #253 (14 мая — 20 мая)

Сегодня мы продолжаем обсуждать прошедший Google I/O, производительные API, вместе с Кармаком вспоминаем Джобса, рисуем формы и копаемся в пользователях. Присоединяйтесь!

Читать дальше →
Дайджест интересных материалов для мобильного разработчика #253 (14 мая — 20 мая)

Автор:IT Press

Automator: Как быстро изменять размер изображений в macOS

Automator: Как быстро изменять размер изображений в macOS

Мы уже рассказывали, насколько широкие возможности предоставляет Automator. Сегодня мы продолжим изучать этот инструмент. В этот раз речь пойдет о службе, которая позволит вам изменять размер изображений в одно нажатие.

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

  1. Запускаем Automator.
  2. В появившемся окне в качестве типа документа выбираем «Служба».
  3. После этого указываем в левой части программы «Файлы и папки».
  4. Переносим пункт «Получить указанные объекты Finder» в правую часть. Там, где «Служба получает выбранное», выбираем «файлы изображений».
  5. Далее переходим в «Фото». Здесь выбираем «Изменить масштаб изображения». Переносим в правую часть. В появившемся окне нас спросят, нужно ли сохранять исходный файл в отдельную папку. В нашем случае мы обойдемся без этого, поэтому выбираем «Не добавлять».
  6. Будет предложено указать тот масштаб изображений, на который они будут в дальнейшем изменяться. Здесь можно выбрать как точный размер в пикселях, так и процентное соотношение.
  7. Сохраняем нашу службу. «Файл» — «Сохранить». Имя службы — «Изменить масштаб».
  8. Все готово! Теперь в контекстном меню в Finder мы увидим наш пункт.


При желании можно назначить горячие клавиши. Заходим в «Системные настройки» — «Клавиатура» — «Сочетания клавиш». Выбираем пункт меню «Службы». Выбрав необходимый пункт, назначаем комбинацию клавиш.

Automator: Как быстро изменять размер изображений в macOS

Автор:IT Press

[Перевод] Пирамида тестов на практике

[Перевод] Пирамида тестов на практике

Об авторе: Хэм Фокке — разработчик и консультант ThoughtWorks в Германии. Устав от деплоя в три ночи, он добавил в свой инструментарий средства непрерывной доставки и тщательной автоматизации. Сейчас налаживает такие системы другим командам для обеспечения надёжной и эффективной поставки программного обеспечения. Так он экономит компаниям время, которое эти надоедливые людишки тратили на свои выходки.

«Пирамида тестов» — метафора, которая означает группировку тестов программного обеспечения по разным уровням детализации. Она также даёт представление, сколько тестов должно быть в каждой из этих групп. Несмотря на то, что концепция тестовой пирамиды существует довольно давно, многие команды разработчиков по-прежнему пытаются неправильно реализовать её на практике должным образом. В этой статье рассматривается первоначальная концепция тестовой пирамиды и показано, как её воплотить в жизнь. Она показывает, какие виды тестов следует искать на разных уровнях пирамиды, и даёт практические примеры, как их можно реализовать.

Содержание

Примечания

Читать дальше →
[Перевод] Пирамида тестов на практике

Автор:IT Press

Как добавить веб-сайты прямо в Dock на Mac

Как добавить веб-сайты прямо в Dock на Mac

В macOS есть крайне удобная функция, которая позволит упростить доступ к любимым сайтам. Не все знают, но ссылки на веб-страницы можно разместить прямо на док-панели. Создавать такие ярлыки можно, используя Safari или любой другой сторонний браузер. Разберем подробнее, как это сделать.

  • Заходим на веб-сайт, ссылку на который необходимо разместить в Dock.
  • Создаем папку на рабочем столе с любым названием.
  • В зависимости от браузера, необходимо «перенести» иконку сайта или адрес в нашу папку.

Почему переносим в папку, если можно разместить прямо в док-панели?

Так сделать, конечно, можно, но в этом случае мы не сможем добавить иконку к нашей закладке. Отображаться будет так:

Итак, в нашей папке должна быть ссылка на веб-страницу:

Переходим в свойства файла:

Теперь добавим иконку веб-сайта к файлу. Для этого необходимо открыть подготовленное изображение в программе «Просмотр». Зажимаем сочетание клавиш Command + C. Снова переходим в свойства и жмем Command + V. Результат в итоге выглядит так:

Осталось перенести нашу закладку в док-панель. Все готово!


Как добавить веб-сайты прямо в Dock на Mac

Автор:IT Press

Как ускорить мобильный поиск в два раза. Лекция Яндекса

Как ускорить мобильный поиск в два раза. Лекция Яндекса

На телефоне веб-страницы часто загружаются дольше, чем на десктопе. Разработчик Иван Хватов рассказывает о причинах отставания и о том, как с ним справляться. Лекция состоит из нескольких частей: первая — про основные этапы загрузки страницы на мобильных устройствах, вторая — про техники, которые мы применяем для ускорения загрузки, третья — про наш метод адаптации верстки под разную скорость.

— Всем привет, меня зовут Иван Хватов, я работаю в инфраструктуре поиска. Последнее время работаю над ускорением загрузки поисковой выдачи. Работаю с версткой, командами бэкэнда и доставкой трафика. Сегодня расскажу, как мы ускоряли мобильный поиск, какие техники мы применяли, успешные и неуспешные. Они неуникальны для нас. Что-то, возможно, сможете попробовать вы сами. Расскажем про наши неуспехи, чему мы на них научились и как пришли к адаптации верстки в зависимости от скорости соединения.
Читать дальше →
Как ускорить мобильный поиск в два раза. Лекция Яндекса

Автор:IT Press

Желанный твик включает «Не беспокоить», стоит положить iPhone экраном вниз

Желанный твик включает «Не беспокоить», стоит положить iPhone экраном вниз

Давно мы не писали ничего о джейлбрейке и твиках для iOS. Главным образом, по той причине, что сложно найти в этом что-то действительно полезное. Но это не значит, что любители взлома ничего полезного не делают. К примеру, мне бы очень пригодились возможности твика Hush в моем iPhone, и думаю, найдутся те, кто со мной согласятся.

Твик Hush создан для управления режимом «Не беспокоить», который отключает уведомления. Обычно мы активируем или деактивируем этот режим с помощью настроек или Центра управления. Твик Hush призван сделать этот процесс еще проще, так заявляет его создатель, разработчик smokin1337.

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

У твика есть совсем немного настроек. Вы можете включить или отключить его, а еще можете настроить временную задержку на включение режима «Не беспокоить» после того, как вы положите свой смартфон. Важно отметить, что для активации всех выбранных настроек iPhone следует дважды перезагрузить. В противном случае твик не будет работать.

Установить Hush можно из популярного репозитория BigBoss, который не нуждается в представлении для всех, кто знаком с джейлбрейком. Это отличный твик, и у него есть только один большой недостаток. Он не умеет выключать режим «Не беспокоить», когда вы поднимаете свой смартфон. Выключать его приходится вручную.

Желанный твик включает «Не беспокоить», стоит положить iPhone экраном вниз