• Почему ['1', '7', '11'].map(parseInt) возвращает [1, NaN, 3] в Javascript?

    • Translation


    Javascript — странный. Не верите? Ну попробуйте тогда преобразовать массив строк в целые числа с помощью map и parseInt. Запустите консоль (F12 на Chrome), вставьте код ниже и нажмите Enter


    ['1', '7', '11'].map(parseInt);

    Вместо ожидаемого массива целых чисел [1, 7, 11] мы получаем [1, NaN, 3]. Но как так? Чтобы узнать в чём тут дело, сначала нам придётся поговорить о некоторых базовых концепциях Javascript. Если вам нужен TL;DR, пролистывайте статью до самого конца.

    Читать дальше →
  • Uibook — инструмент для визуального тестирования React-компонентов с медиа-запросами


      Всем привет! Меня зовут Виталий Ризо, я фронтенд-разработчик в «Амплифере». Мы сделали Uibook — простой инструмент для визуального тестирования React-компонентов с реальными медиа-запросами. Расскажу, как он работает и чем может быть полезен вам.

      Читать дальше →
    • Книга «Учимся кодить на JavaScript»

        imageПривет, Хаброжители! Мы издали книгу для мальчиков и девочек от 10-11 лет которая поможет самостоятельно, без помощи родителей и учителей, написать программный код.

        Ты любишь играть онлайн? Общаться с друзьями через ВКонтакте, Фейсбук и Инстаграм? Смотреть видеоролики на смартфоне? Все, чем ты пользуешься, было придумано обычными людьми, которые когда-то решили, что хотят заняться программированием. Умение писать код — это современная суперспособность, отличающая магов от маглов. И логичнее всего начать с изучения языка JavaScript, на котором написано более 90 % всех веб-сайтов.

        В книге много задачек и упражнений (с ответами, только чур сразу не подглядывать!). Ответов может быть несколько, главное, чтобы у тебя получился рабочий вариант. Стань круче Илона Маска! Пришло время закатать рукава и приступить к прокачке новой суперспособности!
        Читать дальше →
        • +17
        • 6.1k
        • 8
      • Экономический ликбез для айтишников

          Здравствуйте, дорогие айтишники!

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


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

            Что? Строки могут быть «грязными»?

            Да, могут.

            //.....Какой-то код
            console.log(typeof str); // string
            console.log(str.length); // 15
            console.log(str); // "ччччччччччччччч"
            

            Вы думаете, в этом примере строка занимает 30 байт?

            А вот и нет! Она занимает 30 мегабайт!
            Читать дальше →
          • Дизайн интерфейсов встраиваемых систем


              Осциллографы


              Встраиваемые и промышленные системы — моя любимая тема в разработке дизайна. Когда делаешь интерфейс ПО какого-нибудь лазера или яхты — это чистый кайф и творчество.
              На прошлой неделе я посетил выставки expoelectronica и embeddedday именно как UI разработчик. Целью было посмотреть на новинки вживую, пощупать, набраться опыта.
              В итоге я посмотрел более 100 GUI различных систем, но вот с набором опыта возникли проблемы...


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


              Внимание! Много фото!

              Читать дальше →
            • [Перед понедельником] Синдром сухого глаза

              В 1933 году шведский офтальмолог H. Sjogren впервые описал синдром «сухого глаза» при одноименном синдроме Шегрена (аутоиммунное заболевание, при которой снижается секреция слюнных, слезных и др. желез). Это так называемый первичный синдром «сухого глаза», который наблюдается у 1% населения. Развитие современных технологий позволило в 1995 году выделить вторичный синдром «сухого глаза» которым, по разным данным, страдает до 20% населения, и до 48% офисных работников.

              Что же это за болезнь?


              Когда мы моргаем, мы не только смачиваем роговицу глаза слезой, но и оставляем на ней «слезную пленку». В норме она сохраняется на глазу от 10 до 45 секунд, потом лопается. Мы моргаем снова и процесс повторяется.



              Каждый слой слезной пленки очень важен: липидный препятствует испарению и удерживает ее на роговице, водный — увлажняет, питает роговицу, обеспечивает иммунную защиту, муциновый слой — уменьшает поверхностное натяжение слезы. Нарушение выработки одного из компонентов слезной пленки влияет на ее качество. Она начинает быстрее лопаться, появляется чувство дискомфорта и симптомы «сухого глаза».
              Читать дальше →
            • [в закладки] Bash для начинающих: 21 полезная команда

              • Translation
              • Tutorial
              Материал, перевод которого мы публикуем сегодня, предназначен для тех, кто хочет освоить командную строку Linux. Умение эффективно пользоваться этим инструментом позволяет экономить немало времени. В частности, речь здесь пойдёт о командной оболочке Bash и о 21 полезной команде. Также мы поговорим о том, как пользоваться флагами команд и псевдонимами Bash, которые позволяют ускорить ввод длинных инструкций.



              Также читайте в нашем блоге цикл публикаций про bash-скрипты
              Читать дальше →
            • Эмпатия в дизайн мышлении

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

                Основа эмпатии – это наблюдение. Причем, наблюдение не только за объектом дизайна и взаимодействующими с ним людьми, но и за контекстом такого взаимодействия!
                Читать дальше →
              • Почему бизнесу нужен хороший код

                  В сфере разработки программного обеспечения, нередко встречаются тезисы наподобие «Nobody cares about your code» (перевод — «Твой код никого не интересует»), «Код всего лишь инструмент» и ситуации полного непонимания со стороны бизнеса, почему это мы должны выделять время и деньги на какой-то там «рефакторинг» кода который уже работает.

                  Я хочу рассказать, к чему может привести «упор на характеристики», вместо заботы о качестве кода, и почему хороший код нужен не только программистам.
                  Читать дальше →
                • Chrome Audit на 500: Часть 1. Лендинг

                    В инструментах разработчика браузера хром есть вкладка «Audit». На ней расположился инструмент который называется Lighthouse, служит он для анализа насколько хорошо сделано веб приложение.

                    image

                    Недавно я решил протестировать одно приложение и ужаснулся результатам. Сразу по нескольким разделам оценка находилась в красной зоне. Я принялся изучать что же с моим приложением не то. И нашел в результатах анализа большой список очень полезных рекомендаций, выполнил их и получил 500 баллов. В результате приложение стало запускаться значительно быстрее, а я пересмотрел несколько концепций относительно метода построения приложений. А в этой статье я хочу поделиться самыми интересными решениями к которым я пришел.
                    Читать дальше →
                  • Новый кодек AV1: ускоряем загрузку видео в браузере

                    • Translation
                    • Tutorial
                    В этом руководстве мы научимся использовать видео в Вебе, как это принято в 2019. Chrome и Firefox начали поддерживать новый кодек AV1 — для них видео можно сделать в два раза меньше.

                    Отдельно поговорим, как заменить GIF на видео в AV1 и H.264 — тогда его размер упадёт в 20-40 раз.

                    AV1 в браузере

                    YouTube уже использует его в TestTube. Netflix заявил, что AV1 будет «их основным кодеком следующего поколения».

                    Мы в Злых Марсианах уже используем его на нашем сайте и на Ампллифере. В этой статье я поделюсь опытом внедрения AV1 и шаг-за-шагом расскажу, как вставить видео, чтобы оно работало во всех браузерах.
                    Читать дальше →
                  • Веб-компоненты в реальном мире


                      Photo by NeONBRAND


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


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

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



                      Предположим, вас заинтересовало это странное слово. Куда вы обратитесь: в переводчик или в толковый словарь? Думаю, второй вариант предпочтительнее.
                      Читать дальше →
                    • Об идеальном коде и суровой реальности

                        Думаю, никто не будет спорить, что программный код должен быть чистым и «не пахнуть» (code smell), а паттерны проектирования и TDD должны стать верными спутниками любого мало-мальски грамотного разработчика на протяжении его нелегкой, но продуктивной карьеры. Все также знают, что цена ошибки в продакшине возрастает в десятки раз, а также то, что хорошие программисты оптимизируют код, а плохие — покупают новые сервера, а еще то, что 9 женщин не родят одного ребенка за месяц.



                        Было бы глупо спорить с тем, что писать хороший код — не правильно. Более того, внимательный читатель найдет среди моих прошлых публикаций целый серии статей на тему идеального кода. Но эту заметку я решил написать по причине того, что в последнее время очень часто сталкиваюсь с идеализацией процесса разработки и кучи советов в стиле «пофиг на все, главное — идеальный код». Далее несколько наблюдений и историй из жизни.
                        Читать дальше →
                      • 9 шагов для самостоятельного запуска ICO

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

                          Я решил пойти своим путем: провести ICO и собрать $500,000 без денег и большой команды. Нас в SmartProgress только двое: Я (Маликов Максим) — программист и мой бизнес-партнер — Захаров Сергей. В этой статье я постараюсь вам рассказать весь путь подготовки к ICO, который занял у нас 4 месяца.


                          Читать дальше →
                        • Опять [про то, как стать умнее: повторение и зубрежка]

                          • Translation
                          Статья о том, что ее надо перечитать еще 10 раз
                          — из комментариев

                          Повторение как основа для созидания


                          image

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

                          image

                          Легкий способ научиться чему-то сложному


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

                          image

                          Это отличный способ узнать что-то новое. И этот способ довольно расслабляющий, так как вы не чувствуете никакого давления. Вы просто вбиваете новые данные в свой мозг!
                          Читать дальше →
                        • Программист == творчество || программист != творчество

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

                          image

                          Но приходя домой, я принимался за свое любимое занятие – создание игр.
                          Читать дальше →
                        • Цена композиции в Javascript-мире

                            Мысль о том, что в разработке любой более-менее сложной бизнес-логики приоритет должен отдаваться композиции объектов, нежели наследованию популярна в среде разработчиков программных продуктов самых разных типов. На очередной волне популярности функциональной парадигмы программирования, запущенной состоявшимся успехом ReactJS, разговоры о преимуществах композиционных решений пришли и во фронтенд. В данном посте есть немного раскладки по полкам теории о композиции объектов в Javascript, конкретный пример, его разбор и ответ на вопрос сколько стоит смысловая элегантность для пользователя (спойлер: немало).

                            В.Кандинский - Композиция X
                            Василий Кандинский — «Композиция X»
                            Читать дальше →