• Делаем адаптивный HTML, добавляя одну строку в CSS

    • Translation
    image

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

    И самое классное: адаптивность будет добавлена с помощью одной строки CSS.
    Это означает, что нам не нужно загромождать HTML лишними классами (Col-sm-4, col-md-8) или создавать медиа-запросы для каждого размера экрана.

    Рассмотрим все подробнее.
    Читать дальше →
  • Youtube Player — создание собственного плеера на JavaScript

    Вступление


    Наверняка многие фронтэнд разработчики да и в целом многие пользователи хоть раз интересовались работой и функционированием Youtube Player. В этой статье я расскажу, как он работает, и как сделать свой плеер для воспроизведения Youtube видео со своим интерфейсом. Так же приведу примеры для понимания, как это работает.
    Читать дальше →
  • Порталы в React.js

    • Tutorial

    image


    Наверное, каждому фронтенд-разработчику доводилось делать разного рода выпадайки или всплывающие подсказки. И почти всегда настает момент, когда такую штуку надо отобразить внутри элемента с overflow: hidden. Настал такой момент и в SmartProgress.


    Мы на SmartProgress используем React для разработки интерфейсов и нам очень хотелось найти react-way решение. На помощь нам спешат порталы.


    Читать дальше →
  • Как отправить электронное письмо с помощью Python: руководство для «чайников»

    • Translation


    В нашем блоге мы много пишем о создании email-рассылок и работе с электронной почтой. В современном мире люди получают множество писем, а у некоторых даже есть несколько почтовых ящиков. Все это усложняет процесс их администрирования, что вынуждает искать пути решения проблемы. Не так давно мы рассказывали о том, как инженер из США упорядочивал свои письма с помощью нейронной сети (1, 2), а сегодня речь пойдет об автоматизации отправки писем для разных почтовых ящиков.

    Редактор издания Motherboard Майкл Берн (Michael Byrne) написал материал о том, как отправлять электронные письма для различных почтовых ящиков с помощью Python. Мы представляем вашему вниманию адаптированный перевод этой заметки.
    Читать дальше →
    • +6
    • 53.3k
    • 8
  • Возможности IBM Watson задействованы в онлайн-игре нового типа

      image

      Если вы когда-либо видели аниме Sword Art Online, вы, наверное, удивлялись, почему нет ММО-игры по мотивам серии. Герои, сюжет, окружение — все идеально подходит для создания такого рода приложения. Многие фанаты этого аниме неоднократно обращались к авторам проекта с просьбой разработать игрушку, но до некоторого момента просьбы оставались неуслышанными.

      Но сейчас наступил момент истины — мало того, что по мотивам Sword Art Online создается огромный MMO-мир, так еще в создании этого мира принимает участие IBM Watson. Игра эта — одна из наиболее продвинутых технологически, и не только из-за участия в разработке и управлении игровым миром когнитивной системы, но и потому, что игровой мир — это виртуальная реальность.
      Читать дальше →
    • Тестируем вёрстку правильно

        Makeup — инструмент для комфортного ручного регрессионного тестирования вёрстки

        Что не так с тестированием вёрстки


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

        Проблема тестирования вёрстки в том, что только живой человек может сказать, хорошо свёрстан блок на странице или нет. Поэтому чаще всего мы тестируем HTML и CSS вручную: проверяем, как будет вести себя блок, если в нем будет слишком много (или слишком мало) текста или дочерних элементов; смотрим, чтобы все возможные варианты отображения блока смотрелись корректно; помним о том, как блоки должны адаптироваться к разным устройствам и разрешениям экрана.
        Можем ли мы перестать делать это руками?
      • Почему я больше не использую MVC-фреймворки

        • Translation


        Уважаемые хабравчане.

        Поскольку дискуссия вокруг статьи идет весьма активно, Жан-Жак Дюбре (он читает комментарии) решил организовать чаты в gitter.

        Вы можете пообщаться с ним лично в следующих чатах:
        https://gitter.im/jdubray/sam
        https://gitter.im/jdubray/sam-examples
        https://gitter.im/jdubray/sam-architecture

        Также автор статьи разместил примеры кода здесь: https://bitbucket.org/snippets/jdubray/

        По поводу кода он оставил следующий комментарий:
        I don't code for a living, so I am not the best developer, but people can get a sense of how the pattern works and that you can do the exact same thing as React + Redux + Relay with plain JavaScript functions, no need for all these bloated library (and of course you don't need GraphQL).
        Читать дальше →
      • Конец эры глобального CSS

        Все CSS-селекторы живут в глобальной области видимости.

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

        Абсолютно каждый селектор потенциально может вступить в борьбу с другим селектором или стилизовать «посторонний» элемент. В этой «глобальной» борьбе селектор может даже полностью проиграть, в итоге не применив к странице ни одного из своих правил.

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

        Так не должно быть. Пора оставить позади эру глобальных стилей. Наступило время закрытого CSS.
        Читать дальше →
      • Подборка: Более 800 ресурсов для front-end-разработчиков

        • Translation
        Мы продолжаем публиковать подборки полезных инструментов. Ниже представлена подборка из более 800 сервисов, книг, статей, видеотуториалов и других материалов, которые будут полезны всем, кто занимается фронтенд-разработкой.

        Читать дальше →
      • Илья Григорик о внедрении HTTP/2

          Известный специалист по серверной и клиентской оптимизации, соавтор WebRTC, автор книги "High Perfomance Browser Networking" Илья Григорик из Google опубликовал презентацию “HTTP/2 all the things!”, в которой объясняет, как следует настраивать серверную часть под HTTP 2.0, чтобы повысить скорость загрузки страниц и уменьшить latency, по сравнению с HTTP 1.1.


          Режим Connection View в браузере показывает загрузку элементов заглавной страницы Yahoo.com в HTTP 1.1

          Илья начинает с того, что для современных сайтов бóльшая часть задержек приходится на ожидание загрузки ресурсов, при этом полоса пропускания не является ограничивающим фактором (синим цветом на диаграмме Connection View). По статистике, для загрузки средней веб-страницы браузер делает 78 запросов к 12 различным хостам (общий размер загружаемых файлов 1232 КБ).
          Читать дальше →
        • Я хочу, чтобы сайты открывались мгновенно

            Здравствуйте, меня зовут Александр Зеленин и я веб-разработчик. Я расскажу, как сделать так, чтобы ваш сайт открывался быстро. Очень быстро.


            Я хочу, чтобы мой сайт открывался быстро
          • Angular2 теперь «бета»

            Предлагаю вашему вниманию перевод статьи из официального блога AngularJS.

            Мы счастливы поделиться с вами новостью, что проект Angular 2 достиг бета-версии. О том множестве нововведений, что принесла вторая версия по сравнению с первой, вы можете узнать из предыдущего поста. Изучение Angular 2 можно начать на сайте angular.io.

            Что означает «бета»?

            «Бета» означает, что теперь мы уверены в том, что большая часть разработчиков имеет возможность успешно создавать крупные приложения с помощью Angular 2.
            Читать дальше →
            • +18
            • 22.3k
            • 7
          • Что нам стоит сайт распарсить. Основы webdriver API

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



              В интернет опубликовано много полезной информации и умение извлекать данные поможет в жизни и работе. Научимся получать информацию с помощью webdriver API. В публикации приведу два примера, код которых доступен на github. В конце статьи скринкаст про то, как программа управляет браузером.
              Читать дальше →
            • Ionic framework. Обзор экосистемы


                Ionic framework — один из самых широко обсуждаемых фреймворков. Как гласит официальный сайт, Ionic — это SDK для создания гибридных мобильных приложений, набор CSS и JS компонент, созданный на основе AngularJS, SASS, Apache Cordova.

                На момент написания статьи репозиторий Ionic насчитывает 15300 звездочек, а сумма инвестиций в компанию Drifty, чьим продуктом является Ionic, уже достигла $3.7 миллиона.

                Посмотрим, что интересного предлагает Ionic для разработчика.
                Читать дальше →
              • Range, TextRange и Selection

                  Многим JavaScript-разработчикам приходилось сталкиваться с объектами, перечисленными в заголовке, например, при решении следующих задач:
                  — создание визуальных редакторов (wysiwyg),
                  — поиск в окне браузера,
                  — выставление BB-кода,
                  и т.д.

                  В этой статье автором предпринята попытка собрать перевод документации об этих объектах в одном месте + написать небольшие сопроводительные примеры. Перевод вольный, не дословный, так что если встретите неточность или корявую формулировку — пишите в комментариях.

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

                  Читать дальше →
                • Sphinx distribute. Ускоряем поиск

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

                  Одна из неприятных особенностей Sphinx'а — очень скудная информация на русском языке. Удивишись тем, что тема распределения нагрузки не была затронута, решил поделиться данным решением на Хабре.

                  Цель: повысить производительность Sphinx путём разделения нагрузки на несколько потоков.
                  Решение
                  • +7
                  • 12.5k
                  • 6
                • Ускоряем angular.js или как не выстрелить себе в ногу



                    Всем доброго времени суток. Релиз Angular.js 2.0 приближается, а проблемы с производительностью первой версии все еще остаются. Эта статья посвящена оптимизации Angular.js приложений и будет полезна как начинающим, так и тем, кто уже использует этот фреймворк, но еще не сталкивался с проблемами его производительности.
                    Читать дальше →
                  • Actor Open Messaging Platform от разработчика Telegram

                      Всем привет!

                      Наша команда недавно выпустила небольшой продукт — открытую платформу для создания мессенджеров — Actor Messaging Platform.



                      Всего за несколько дней после запуска мы оказались на главной Hacker News (кто из разработчиков не читает — зря), на Reddit и собрали больше 600 звезд на GitHub от разработчиков со всего мира. У нас появилось небольшое сообщество, участники которого помогают друг друге в работе и улучшении продукта. Один из участников уже реализовал несколько важных вещей, необходимые Актору. Например, достаточно высококачественные звонки.
                      Читать дальше →
                    • По-настоящему адаптивные письма. Часть… снова первая



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

                        К чему мы приходим:
                        — Использование внешних стилей и последующий прогон кода через инлайнер. Из-за усложнения кода это стало целесообразным
                        — Улучшение семантики через именование классов и сокращение участков кода
                        — Частичная поддержка the Bat! Хотя Николь на него забила.
                        — Полная поддержка всех мобильных почтовых клиентов
                        — Использование ранее опасных конструкций. Благодаря усердному тестированию проблемы решены.
                        Читать дальше →
                      • По-настоящему адаптивные письма. Часть первая

                          Написание данного поста навеяно недавней поистине шикарной работой, Niсole Merlin. Во многом ее методика верстки схожа с моей и мне радостно от того, что это направление развивается теперь и на западе. Чем же этот способ так хорош? Все очень просто. Не нужно объяснять как важно адаптировать под мобильные платформы сверстанные письма для того, чтобы они были прочтены. Читать простыни на телефоне мало кто будет. Что же все это время делал западный разработчик? Он верстал табличной версткой с элементами блочности, затем причесывал этот код медиазапросами для поддержки мобильников. Чем этот подход ущербен? А тем, что ни на андроиде, ни на яблоке медиазапросы не поддерживаются следующими почтовыми клиентами: Gmail, Yandex, Mail.ru. По большому счету западные коллеги могли бы и наплевать на яндекс с мейлом, но вот Gmail как ни крути первый среди почтовиков.



                          Для Nicole Merlin это стало очевидно и она разработала свою методику, которая основывается на резиновой верстке с минимальным использованием медиазапросов(progressive enhancement) и это работает! Но немного не так как хотелось бы нам в России. Вся резиновость автора держится на inline-block элементах и оперированием max-width. Но вот беда-то, наши ребята из яндекса и мейла max-width не поддерживают. Сначала я расскажу об отличиях моего подхода от приемов Nicole, а затем плавно перейду к своим мыслям и примерам кода, которые стоит использовать при подготовке писем.
                          Читать дальше →
                          • +8
                          • 19.3k
                          • 8