• Мифы о доступности цветового контраста

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

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


    Читать дальше →
    • +29
    • 9.5k
    • 7
  • Часть вторая. Как проходить code review по версии Google

      Возможно вы читали первую часть статьи про код ревью со стороны ревьювера (кстати, мы уже успели ее обсудить в последнем выпуске подкаста "Цинковый прод").

      Так как статья набрала много лайков, пишу обещанное продолжение про код ревью с другой стороны — со стороны автора изменений кода

      Как обычно, будем говорить MR (Merge Request) вместо CL, потому что термин CL мало кто понимает.


      Оригинал инструкции для авторов MR по версии Google можно посмотреть здесь, а я дам краткую выжимку.


      Итак, поехали

      Читать дальше →
    • Принципы документирования и локализации, или как получить хорошую локализацию минимальными затратами

        Всем привет!

        Меня зовут Денисов Александр. Я работаю в компании Naumen и отвечаю за документирование и локализацию программного продукта Naumen Contact Center (NCC).

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

        image
        Читать дальше →
      • Введение в Git

        • Tutorial

        Оглавление


        Предисловие
        1. Настройка git
        ....1.1 Конфигурационные файлы
        ....1.2 Настройки по умолчанию
        ....1.3 Псевдонимы (aliases)
        2. Основы git
        ....2.1 Создание репозитория
        ....2.2 Состояние файлов
        ....2.3 Работа с индексом
        ....2.4 Работа с коммитами
        ....2.5 Просмотр истории
        ....2.6 Работа с удалённым репозиторием
        3. Ветвление в git
        ....3.1 Базовые операций
        ....3.2 Слияние веток
        ....3.3 Rerere
        4. Указатели в git
        ....4.1 Перемещение указателей
        5. Рекомендуемая литература

        Предисловие


        Git — самая популярная распределённая система контроля версиями.[1][2]

        Основное предназначение Git – это сохранение снимков последовательно улучшающихся состояний вашего проекта (Pro git, 2019).
        Читать дальше →
      • Как не нужно составлять согласие на обработку персональных данных

          И какие согласия не стоит подписывать.



          Доброго времени суток, Хабр!

          Эта статья родилась совершенно спонтанно из такой вот истории.

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

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

          Под катом разберемся, что с согласием не так и почему оно незаконно.
          Читать дальше →
        • Лошадь сдохла – слезь: переход с tslint на eslint

            До недавнего времени во всех проектах фронта разработчики Dodo Pizza Engineering использовали tslint – полезный инструмент, который подсказывает, когда ты накосячил в коде допустил неточность, помогает поддерживать код в одном стиле и сам исправляет многие замечания. Но тут tslint взял и умер. Под катом я расскажу, почему так вышло, как перестать лить слёзы по умершему и перейти на инструмент eslint, а также покажу кое-что очень интимное.


            Читать дальше →
          • Как проводить Code Review по версии Google

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

              И вот недавно при подготовке к очередному выпуску подкаста "Цинковый прод" я узнаю, что Google опубликовал свод правил по проведению Code Review, битком набитый ценными мыслями. Весь материал довольно объемный и не влезет в одну статью, поэтому я постараюсь выделить наиболее интересные (мне) мысли.


              Итак, поехали

              Читать дальше →
            • React + IndexDb + автообновление = почти AsyncRedux

              • Tutorial
              В данной заметке по шагам расскажу как приготовить IndexDB (база данных, которая встроена в любой современный браузер) для использования в проектах, написанных на ReactJS. В результате Вы сможете использовать данные из IndexDB так же удобно, как если бы они находились в Redux Store вашего приложения.

              IndexDB — это документоориентированная СУБД, удобное средство для временного хранения относительно небольшого объёма (единицы и десятки мегабайт) структуированных данных на стороне браузера. К стандартной задаче, для которых мне приходится использовать IndexDB относится кэширование данных бизнес-справочников на стороне клиента (названия стран, городов, валют по коду и прочее). Скопировав их на сторону клиента потом можно лишь изредка загружать с сервера обновления этих справочников (либо целиком — они же небольшие) и не делать это при каждом открытии окна браузера.
              Читать дальше →
            • Использование законов гештальт-психологии в дизайне пользовательского интерфейса

              • Translation
              • Tutorial
              Гештальт — это немецкое слово, означающее понятие «форма». Гештальтпсихология была основана немецкими психологами Максом Вертхаймером, Вольфгангом Колером и Куртом Коффкой и ориентирована на то, как люди интерпретируют мир. Вертхаймер, Колер и Коффка установили несколько фундаментальных принципов, также известных как «законы организации восприятия». Эти Принципы описывают то, как мы воспринимаем мир.

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


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

              • Translation
              Есть одно высказывание: «Что ты не можешь измерить, то ты не можешь улучшить». Автор статьи, перевод которой мы сегодня публикуем, работает в компании Superhuman. Он говорит, что эта компания занимается разработкой самого быстрого в мире почтового клиента. Здесь речь пойдёт о том, что такое «быстро», и о том, как создавать инструменты для измерения производительности невероятно быстрых веб-приложений.


              Читать дальше →
              • +34
              • 8.1k
              • 3
            • Как запускается сервер


                Запуск сервера — длинная и сложная последовательность действий, зависящая от аппаратной составляющей, настроек и используемого программного обеспечения. Многие, даже опытные и квалифицированные системные администраторы, плохо себе представляют, что именно происходит в процессе запуска сервера, поэтому мы решили разобрать этот процесс детально.
                Читать дальше →
              • Заметки верстальщика: Полезные расширения Google Chrome в 2019 году

                В моем браузере установлено около 30 расширений, которые упрощают жизнь и работу в интернете. В этой статье я хочу поделиться 10 актуальными расширениями Google Chrome для верстальщика, которые постоянно использую при разработке сайтов.

                Читать дальше →
              • [Не] используйте CDN

                  Практически в любой статье или инструменте для оптимизации скорости сайтов есть скромный пункт «используйте CDN». Вообще, CDN – это content delivery network или сеть доставки контента. Мы в компании «Метод Лаб» часто встречаемся с вопросами клиентов по этой теме, некоторые самостоятельно включают себе CDN. Цель этой статьи разобраться, что может дать CDN с точки зрения скорости загрузки сайта, какие проблемы могут возникать и в каких случаях использование CDN оправдано.

                  image

                  Обведённые на картинке задержки вызваны использованием CDN.
                  Читать дальше →
                • 40 лучших инструментов и ресурсов Laravel

                  image
                  Привет, Хабр! Представляю вашему вниманию подборку, которая является переводом моей оригинальной статьи.

                  Если есть идеи что добавить в подборку — буду рад пообщаться в комментах. Наслаждайтесь!
                  Читать дальше →
                • Оптимизация загрузки JavaScript-кода в Wikipedia

                  • Translation
                  Автор материала, перевод которого мы сегодня публикуем, говорит, что он, в середине сентября 2019, наконец-то завершил проект, которым занимался уже год. Целью этого проекта было сокращение размеров манифеста, необходимого для инициализации асинхронного JavaScript-конвейера Wikipedia. А именно, размер манифеста составлял 36 Кб. Его нужно было уместить в менее чем 28 Кб, что соответствует двум 14-килобайтным фрагментам последовательности интернет-пакетов.

                  Результатом этого проекта стала ежедневная экономия 4.3 терабайт трафика.


                  Сначала размер манифеста превышал 36 Кб, а после оптимизации его размер стал меньше 28 Кб

                  На графике показано постепенное уменьшение размеров манифеста. Речь идёт о сжатых данных (то есть это — чистая нагрузка на сеть, которую создаёт передача этих данных с сервера в браузер).
                  Читать дальше →
                  • +37
                  • 6.9k
                  • 8
                • Время высокой точности: как работать с долями секунды в MySQL и PHP

                  • Tutorial


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


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


                  Я буду использовать термин «время высокой точности». В документации MySQL вы увидите термин “fractional seconds”, но его дословный перевод звучит странно, а другого устоявшегося перевода я не нашёл.

                  Читать дальше →
                • Почему Kaldi хорош для распознавания речи?



                  Почему мне (и, надеюсь, вам) интересно распознавание речи? Во-первых, это направление является одним из самых популярных по сравнению с другими задачами компьютерной лингвистики, поскольку технология распознавания речи сейчас используется почти повсеместно – от распознавания простого «да/нет» в автоматическом колл-центре банка до способности поддерживать «светскую беседу» в «умной колонке» типа «Алисы». Во-вторых, чтобы система распознавания речи была качественным, необходимо найти самые эффективные средства для создания и настройки такой системы (одному из подобных средств и посвящена эта статья). Наконец, несомненным «плюсом» выбора специализации в области распознавания речи лично для меня является то, что для исследований в этой области необходимо владеть как программистскими, так и лингвистическими навыками. Это весьма стимулирует, заставляя приобретать знания в разных дисциплинах.
                  Читать дальше →
                • OWASP API Security Top 10 RC

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

                    Проект безопасности OWASP API Security Top 10 предназначен подчеркнуть потенциальные риски в небезопасных API и предложить меры снижения таких рисков.
                    Читать дальше →
                    • +37
                    • 5.3k
                    • 1
                  • Уменьшение размеров бандлов с помощью Webpack Analyzer и React Lazy/Suspense

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



                    Автор статьи, перевод которой мы сегодня публикуем, работает в Wix. Он хочет рассказать о том, как смог уменьшить размер одного бандла примерно на 80%, используя Webpack Analyzer и React Lazy/Suspense.
                    Читать дальше →
                    • +31
                    • 6.1k
                    • 6
                  • Разработка в монорепозитории. Доклад Яндекса

                      Моё имя Азат Разетдинов, я в Яндексе уже 12 лет, руковожу службой разработки интерфейсов в Я.Недвижимости. Сегодня я хотел бы поговорить про монорепозиторий. Если у вас всего один репозиторий в работе — поздравляю, вы уже живете в монорепозитории. Теперь о том, зачем он нужен другим.



                      Как сказала руководитель службы разработки API Яндекс.Карт Марина Перескокова — посадил дед монорепу, выросла монорепа большая-пребольшая.

                      Читать дальше →