Аутентификация в мобильных приложениях

Автор: admin от 9-01-2018, 22:00, посмотрело: 315

История с предысторией



Идеальный телефон, как верный пёс, должен узнавать хозяина по запаху и охранять имущество от посторонних.



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



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



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



Скоро этого стало не хватать. У первобытных программистов появились идентификаторы, затем логин с паролем – и вот перед нами классическая Basic Authentication протокола HTTP.

Категория: Админитстрирование » Системное администрирование

 

«Простое» программирование на python

Автор: admin от 9-01-2018, 22:00, посмотрело: 139

«Простое» программирование на python

functools (это такая свалка для всяких ненужных мне вещей :-).

— Гвидо ван Россум

Может показаться, что статья о ФП, но я не собираюсь обсуждать парадигму. Речь пойдет о переиспользовании и упрощении кода — я попытаюсь доказать, что вы пишете слишком много кода, поэтому он сложный и тяжело тестируется, но самое главное: его долго читать и менять.



В статье заимствуются примеры и/или концепции из библиотеки funcy. Во-первых, она клевая, во-вторых, вы сразу же сможете начать ее использовать. И да, нам понадобится ФП.

Категория: Админитстрирование » Системное администрирование

 

Небезопасные абстракции

Автор: admin от 9-01-2018, 22:00, посмотрело: 281

Небезопасные (unsafe) абстракции



Ключевое слово unsafe является неотъемлемой частью дизайна языка Rust. Для тех кто не знаком с ним: unsafe — это ключевое слово, которое, говоря простым языком, является способом обойти проверку типов (type checking) Rust'а.



Существование ключевого слова unsafe для многих поначалу является неожиданностью.

В самом деле, разве то, что программы не "падают" от ошибок при работе с памятью,

не является особенностью Rust? Если это так, то почему имеется легкий способ обойти

систему типов? Это может показаться дефектом языка.



Все же, по моему мнению, unsafe не является недостатком. На самом деле он является

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



Данная заметка представляет ключевое слово unsafe и идею ограниченной "небезопасности".

Фактически это предвестник заметки, которую я надеюсь написать чуть позже.

Она обсуждает модель памяти Rust, которая указывает, что можно, а что нельзя делать в unsafe коде.

Категория: Программирование, Системное администрирование

 

Превращаем докладчиков в спикеров #2: разбор выступления Артема Данилова, Авито

Автор: admin от 9-01-2018, 21:25, посмотрело: 202

Мы начинаем профессиональный «разбор полетов» выступлений с HighLoad++, который поможет многим будущим и нынешним спикерам поучиться на чужих примерах. В прошлой публикации я рассказывал о том, что именно я буду делать и зачем все это нужно. Завершать каждый материал будет небольшой рассказ о важности какого-то определенного параметра в выступлении.



Превращаем докладчиков в спикеров #2: разбор выступления Артема Данилова, Авито


Первым под прицел попал Артем Данилов из Авито и его доклад про хранилище данных. В конце же вас ждет экскурс про дикцию.
Итак, поехали

Категория: Компании » Google

 

Как вести переговоры с англоговорящими коллегами: инструкция

Автор: admin от 9-01-2018, 21:25, посмотрело: 189

Многие взрослые студенты начинают подтягивать свой английский в первую очередь для работы. Английский уже давно является языком международного бизнеса: где бы вы ни находились, с какими бы компаниями ни вели дела, чаще всего все переговоры и сделки по продаже ведутся на английском языке. Курсы бизнес-английского обычно знакомят вас с самой ходовой лексикой, например, названием должностей, структурой компаний и навыками бизнес-переписки. Но чаще всего вам придется вести переговоры, будь то переговоры по телефону или лично. С чего начать планирование переговоров и нужно ли их вообще планировать? Какая лексика потребуется в самом начале? Уместен ли small talk в бизнес-переговорах? Разбираемся с основами.



Как вести переговоры с англоговорящими коллегами: инструкция

Категория: Компании » Google

 

Безлимитное распознавание речи. Или как я перевожу в боте голосовые сообщения в текст

Автор: admin от 9-01-2018, 21:25, посмотрело: 258

Привет, хабр. Обычно я пишу программы для неговорящих людей, но решил ударится в крайности и сделать продукт для говорящих людей. Я хочу рассказать о разработке бота для VK, который переводит пересланные ему голосовые сообщения в текст. Сначала я использовал Yandex SpeechKit, но потом уперся в дневной лимит распознаваемых единиц и перешел на wit.ai, об этом и хочу рассказать, а также о фреймворке для создания ботов vk с помощью node.js, болтовне гугловского dialogflow.



Безлимитное распознавание речи. Или как я перевожу в боте голосовые сообщения в текст

Категория: Facebook, Google

 

Избавляемся от boilerplate для валидации в ASP.NET MVC

Автор: admin от 9-01-2018, 17:50, посмотрело: 172

В большинстве примеров проверка входных данных ASP.NET MVC осуществляется следующим образом:



        [HttpPost]
        public IActionResult Test(SomeParam param)
        {
            if (!ModelState.IsValid)
            {
                return View(param);
                // return Json({success: false, state: ModelState});
            }
            
            dbContext.UpdateData(param);

            return RedirectToAction("index");
            // return Ok({success: true});
        }


Этот код можно улучшить:




  • вынести валидацию из тела метода и избавиться от дублирования if (!ModelState.IsValid)

  • вернуть код ответа 422
  • Категория: Программирование

     

    Приглашаем на PGConf.Russia 2018

    Автор: admin от 9-01-2018, 17:40, посмотрело: 199

    Очень скоро, а именно 5-7 февраля 2018 г. в Москве будет проводиться одна из основных мировых конференций по СУБД PostgreSQL — PGConf.Russia. В этой статье мы анонсируем основные доклады конференции, и расскажем об особенностях её проведения в этом году.

    Категория: Компании » Google

     

    Подбираем пароли с помощью Google Chrome

    Автор: admin от 9-01-2018, 17:40, посмотрело: 245

    Согласно многочисленным исследованиям в области компьютерной безопасности, в ТОП-3 уязвимостей информационных систем входит подбор пароля.



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



    В случае, если мы имеем какой-либо портал, где пользователи – это люди, то бОльшую часть уязвимых слабых паролей можно отнести к одной из 4 групп:




  • Пароли, входящие в топ самых популярных фраз (такие как «123456», «password», и т.п.).

  • Пароли, представляющие собой сочетание клавиш – так называемые keyboard-walks пароли (например, «qwerty», «qazwsx», и т.п.).

  • Пароли – искажённые логины («user123», «user321», и т.п.).

  • Либо использование в качестве пароля популярных русских слов или имён в «перевёрнутой» раскладке («ljcneg», «fylhtq»)
  • Категория: Компании » Google

     

    Магия CharSequence

    Автор: admin от 9-01-2018, 15:35, посмотрело: 145

    java.lang.CharSequence только на первый взгляд кажется незатейливым интерфейсом из трех методов, но при детальном рассмотрении открывает нам несколько интересных нюансов.

    Интерфейс реализуют такие java-классы как String, StringBuffer, StringBuilder, GString (groovy) и не только.



    TL;DR если добавить этот интерфейс в класс, он получит часть свойств строки и появится ряд возможностей — сравнения со строками (например, String.contentEquals), использования различных строковых API (например, Pattern.matcher), а также в местах автоматического определения поведения в зависимости от типа (например, биндинг параметров запроса в jdbc).



    Кроме того, этот подход упростит проведение ряда рефакторингов по усилению системы типов в приложении — в первую очередь замены объектов типа String на специализированные обертки или enum-константы.



    Строковые скаляры



    Для добавления ограничений на формат значения, а также усиления type safety, вместо строк могут использоваться специальные скалярные обертки. Для понимания рассмотрим пример — пусть ID клиента является строкой, соответствующей регулярному выражению. Его класс-обертка будет выглядеть примерно так:

    Категория: Операционные системы » Linux

     
    Назад Вперед