• Конструктор шаблонов проектов или сложности управления большими проектами

    Rispa — инструмент, чтобы подружить всех со всеми


    Предыстория


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

    Читать дальше →
    • +14
    • 3,3k
    • 2
  • OAuth аутентификация в приложении Flask

    • Tutorial

    Эта статья является бонусом к новому циклу статей Flask Mega-Tutorial (2018).
    Автор тот же Мигель Гринберг. Статья не новая, но не утратила своей актуальности.


    blog.miguelgrinberg.com


    Технологии OAuth уже больше 10 лет, и 99% процентов интернет-аудитории имеет аккаунт минимум на одном из ресурсов, поддерживающих OAuth. Кнопка «Войти через» есть почти на каждом ресурсе? Разберемся как это делается с применением микрофреймворка Flask.



    Читать дальше →
  • Достоинства и фатальные недостатки типизации в php

      Язык php часто ругают, обычно необоснованно. Особенно удивляет, что javascript ругают меньше. Зачастую это делают люди, которые писали на нем 10+ лет назад, когда язык был действительно чертовски плох, да и разработчики в те времена не задумывались над качеством кода. Посмотрите хотя бы на код wordpress, который до сих пор вызывает шок.


      Ругают необоснованно, но проблемы у языка, конечно же, есть, и они серьёзные. Разуметеся, если сравнить последние релизы php7 (с нормальным ООП и строгим тайпхинтингом) и php4, то разница будет колоссальная. Однако и в последних версиях языка не всё гладко, и до java/c# пока что очень далеко. Более того, берусь утверждать, что будущее php тоже довольно сомнительно (с точки зрения типов).


      Другими словами, давайте рассмотрим предметно, что хорошо и что плохо в php с точки зрения типизации.

      Читать дальше →
    • Машины состояний и разработка веб-приложений

      • Перевод
      Настал 2018-й год, найдено множество замечательных способов создания приложений, но бесчисленные армии фронтенд-разработчиков всё ещё ведут борьбу за простоту и гибкость веб-проектов. Месяц за месяцем они проводят в попытках достигнуть заветной цели: найти программную архитектуру, свободную от ошибок, и помогающую им делать их работу быстро и качественно. Я — один из этих разработчиков. Мне удалось найти кое-что интересное, способное дать нам шанс на победу.


      Инструменты вроде React и Redux позволили веб-разработке сделать большой шаг в правильном направлении. Однако, самих по себе их недостаточно для создания крупномасштабных приложений. Похоже, что ситуацию в разработке клиентских частей веб-приложений может значительно улучшить применение машин состояний. О них и пойдёт речь в этом материале. Кстати, возможно вы уже построили несколько таких машин, но пока ещё об этом не знаете.
      Читать дальше →
      • +15
      • 4,6k
      • 8
    • Куда утекают данные: последствия грандиозного «слива» Equifax

        2017 год запомнился серией серьезнейших утечек персональных данных пользователей. Два самых ярких события второй половины года — это обнародование информации о «сливе» огромной базы данных украденных паролей и атака на одно из трех главных кредитных бюро США — Equifax.

        Организация не сообщала о краже данных более чем 140 млн. человек несколько месяцев. Ответственность Equifax за инцидент и молчание обсуждается до сих пор. Сейчас власти США лишь рекомендуют компаниям уведомлять клиентов об утечках.

        Но уже скоро ситуация может поменяться — в январе в США был внесен законопроект, который устанавливает штрафы для компаний, допустивших утечки. Если бы он действовал на момент «слива», Equifax пришлось бы заплатить свыше $1,5 млрд.

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

        Читать дальше →
      • Безопасность футбольных стадионов: некоторые неявные особенности


          Пример монтажа на стадионе ЦСКА

          Итальянские и английские футбольные фанаты считались самыми агрессивными. Но теперь они дома не бузят. Почему? Потому что их лишают пожизненно права посещения стадионов. Поэтому они бузят на евро, на ЧМ, во Франции. У нас тоже начинается такое: особо эмоциональные фанаты легко могут словить запрет на посещение арены на достаточно продолжительный срок.

          Начну с того, что если вы набедокурите, то сотрудники безопасности стадиона заботливо занесут ваши биометрические данные лица в систему видеонаблюдения согласно законному решению суда. Когда вы в следующий раз появитесь на стадионе, вас уверенно распознают и сообщат об этом сотрудникам безопасности. Вопрос с персональными данными и свободой договора (билет — это договор) решается элегантно: на стадии «набедокурил» на вас просто подают в суд и получают заключение, с которым уже можно действовать дальше.

          Вообще, есть два мифа про безопасность на стадионах:

          1. Что видеонаблюдение не помогает в предотвращении преступлений.
          2. И что биодетекторы — это прошлый век.
          Читать дальше →
        • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

          Подробнее
          Реклама
        • Выразительный Kotlin. Extensions

          • Tutorial
          Никто не любит повторяемый код. Тем не менее, существуют конструкции, которые прижились и укореннились в программировании довольно давно, не смотря на эту самую повторяемость.
          Есть такая часто используемая конструкция биндинга данных в android:

          fun bindCell1(view: View, data: Data) {
              view.cell1_text.setText(data.titleId)
              view.cell1_icon.setImageResource(data.icon)
          }

          Очевидный метод, у которого есть одна очень досаждающая мне неряшливость — каждый раз необходимо указывать ссылки view. и data. Каждая строка содержит 10 символов, которые очевидны.
          Читать дальше →
        • Лучшая архитектура на базе Docker и Kubernetes — миф или реальность?

            Как изменился мир разработки ПО в эпоху Docker и Kubernetes? Можно ли построить архитектуру один раз и навсегда на базе этих технологий? Возможно ли унифицировать процессы разработки и интеграции, когда все "упаковано" в контейнеры? Какие требования предъявляются таким решениям? Какие ограничения несут они с собой? Упростят ли они жизнь простым разработчикам или сделают её тяжелее?



            Пришло время ответить на все эти и не только эти вопросы! (В тексте и оригинальных иллюстрациях)

            Читать дальше →
          • Написание кода в docker окружении

              В компании, где я работаю — большинство сервисов запускаются и работают в docker-контейнерах.


              В связи с этим, у моих коллег-новичков-в-докере часто возникает вопрос — а как писать код и запускать его в этом чёртовом контейнере???



              Для человека, написавшего около сотни docker-образов и запускающего их несколько раз в день — такой вопрос уже не стоит, но когда я разбирался с докером в давние времена — мысль "Как же писать код в докере? Это же сверхнеудобно!" долго была актуальной.


              В статье я опишу свои практики работы с образами docker, которые позволяют писать код "как у себя в home", и даже лучше.

              docker run --rm -it -v
            • Lua. Краткое введение в метатаблицы для чайников

              • Tutorial

              На написание данной статьи меня сподвигло большое количество вопросов по метатаблицам и ООП в Lua, благо это самый сложный и проблематичный раздел у изучающих данный язык, но, так как Lua проектировалась как язык для начинающих и не-программистов и, в целом, имеет небольшой объём материала для освоения, негоже оставлять её «на потом», учитывая что с помощью метатаблиц можно творить чудеса и крайне элегантные решения заковыристых задач.
              Читать дальше →
              • +27
              • 5,1k
              • 7
            Самое читаемое