• Чем отличаются JavaScript и ECMAScript?

    • Перевод
    Перевод What’s the difference between JavaScript and ECMAScript?

    Как-то мы попробовали гуглить «различие между JavaScript и ECMAScript».

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

    «ECMAScript — это стандарт».
    «JavaScript — это стандарт».
    «ECMAScript — это спецификация».
    «JavaScript — это реализация стандарта ECMAScript».
    «ECMAScript — стандартизованный JavaScript».
    «ECMAScript — это язык».
    «JavaScript — это диалект ECMAScript».
    «ECMAScript — это JavaScript».


    Сдерживая желание заплакать, мы постарались овладеть собой и провели трудоемкое, но продуктивное исследование.

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

    Ну что, погнали.
    Читать дальше →
  • Раскрашиваем чёрно-белую фотографию с помощью нейросети из 100 строк кода

    • Перевод

    Перевод статьи Colorizing B&W Photos with Neural Networks.

    Не так давно Амир Авни с помощью нейросетей затроллил на Reddit ветку /r/Colorization, где собираются люди, увлекающиеся раскрашиванием вручную в Photoshop исторических чёрно-белых изображений. Все были изумлены качеством работы нейросети. То, на что уходит до месяца работы вручную, можно сделать за несколько секунд.

    Давайте воспроизведем и задокументируем процесс обработки изображений Амира. Для начала посмотрите на некоторые достижения и неудачи (в самом низу — последняя версия).
    Читать дальше →
  • Анонс митапа ThinkJava #6, Харьков

      Приглашаем всех Java-разработчиков на шестую встречу ThinkJava-комьюнити! Будем говорить о разработке реактивных приложений, а перерывах — общаться на кофе-брейках и делиться впечатлениями об услышанном и собственным опытом.
      Читать дальше →
    • Проектируем микросервисную архитектуру с учётом сбоев

      • Перевод
      Перевод статьи Designing a Microservices Architecture for Failure.

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

      В этой статье представлены самые распространённые методики и архитектурные шаблоны для построения и оперирования высокодоступной микросервисной системой.
      Читать дальше →
    • Анонс митапа ThinkPHP #15 в Харькове


        Приглашаем всех на уже пятнадцатую встречу ThinkPHP-сообщества! Актуальные темы, насыщенные доклады, оживленные кофе-брейки — идеальная атмосфера для того, чтобы поговорить о тенденциях современной веб-разработки и круто провести пятницу.
        Читать дальше →
      • Вред маленьких функций

        • Перевод

        Перевод статьи Синди Шридхаран.

        В этой статье автор собирается:

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

        • Перевод


        Перевод статьи Мэтта Галлагера.

        В этой статье речь пойдёт об отсутствии потокового выполнения (threading) и инструментов синхронизации потоков в Swift. Мы обсудим предложение о внедрении «многопоточности» (concurrency) в Swift и то, как до появления этой возможности потоковое выполнение в Swift будет подразумевать использование традиционных мьютексов и общего изменяемого состояния (shared mutable state).

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

        • Перевод


        Перевод статьи Валинды Чен.

        Это сборник советов для разработчиков-новичков, которые смотрят на пустой экран и не знают, с чего начать. Нередко можно услышать от молодых разработчиков, работающих над решением каких-то задач в программировании, что они не уверены, за что нужно хвататься. Ты понимаешь саму задачу, логику, основы синтаксиса и так далее. Если ты видишь чей-то код, или тебе кто-то помогает, то можно всё сделать самому. Но бывает, что ты не уверен в своих силах, или поначалу тебе трудно реализовать свои мысли в коде, несмотря на то, что ты знаешь синтаксис и логику. Под катом — несколько советов по решению этой проблемы, которые помогут вам в повседневной работе.
        Читать дальше →
        • +17
        • 31,3k
        • 5
      • Ускорьте ваш сайт с помощью машинного обучения

        • Перевод

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

        Но не является ли такое представление о производительности веб-приложений слишком ограниченным? С позиции пользователя все эти действия — лишь крошечный кусок большого пирога производительности.

        В этой статье мы пройдёмся по всем этапам использования сайта, как если бы это делал обычный человек, измерив длительность каждого из них. И особое внимание уделим конкретному шагу на одном конкретном сайте, который может быть ещё больше оптимизирован. Хочется верить, что решение (которым будет машинное обучение) может быть использовано во многих различных случаях на разных сайтах.
        Читать дальше →
        • +17
        • 15,7k
        • 6
      • Дизайн для пальцев, касаний и людей

        • Перевод


        Перевод статьи Стивена Хубера.

        Многие читают и ссылаются на статью 2013 года “How Do Users Really Hold Mobile Devices?”. Но с тех пор было проведено немало исследований и экспериментов по использованию разных методик в реальных продуктах, написано много других статей. За прошедшие годы стало больше известно о том, как люди удерживают свои смартфоны и планшеты, как они взаимодействуют с ними тактильно. И всех этих, зачастую неожиданных данных, нет в старой статье 2013 года. И это её главная проблема. В ней были сделаны предположения, основанные на наблюдениях за использованием десктопов, на стандартах для более старых способов взаимодействия, а также на казусных ситуациях и неверно интерпретированных данных. Но благодаря дальнейшим исследованиям и более качественному анализу удалось отвергнуть ошибочные предположения и докопаться до истины.

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