• Раздача статического контента — счет на милисекунды

      image

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

      И вот мы решили ускорять то, что и так работает быстро и, заодно, поделиться опытом того, что получилось в итоге. Конечно же я расскажу о граблях, о том где не надо HTTP/2, о том почему мы покупаем 7,6Tb NVMe SSD вместо 8x1Tb SATA SSD и много другой узкоспециализированной информации.

      Давайте сразу договоримся что хранение и раздача контента это 2 разные задачи и говорить мы будем только про раздачу (продвинутый кеш)

      Начнем с железа…
      Читать дальше →
      • +13
      • 5,3k
      • 6
    • Fedora 25. Новая надежда: Wayland, Storaged, поддержка Raspberry Pi…

        Fedora 25

        22 ноября Fedora опять зарелизилась. 25-й релиз, на мой взгляд, получился очень удачный:

        • Замена старого сервера X.Org или X11 на Wayland. Поддержка сеанса на базе X11 сохранена в качестве опции
        • UDisks2 заменён на Storaged, предоставляющий унифицированный D-Bus API для управления LVM2, iSCSI, Btrfs, BCache, LSM и ZRam
        • Поддержка устройств Raspberry Pi 2 и 3

        Читать дальше →
      • Node.js 7.0.0 зарелизился. Встречайте async/await без babel

          File:Node.js logo 2015.svg

          7-я нода зарелизилась, ура! Что нового:

          • Движок V8 обновлён до версии 5.4.500.36, в которой обеспечена поддержка 98% возможностей JavaScript, определённых в спецификации ES2015 (ES6) и, частично, будущим стандартом ES2017.
          • Отмечается новый парсер URL, соответствующий стандарту оформления URL, подготовленному сообществом WHATWG.
          • Доработана работа с Buffer, Child Process, Cluster, файловой системой, промисами
          • Полный список изминений

          Для меня это долгожданный релиз, так как появилась возможность изпользовать конструкцию async/await без транспайлера babel. Включается это все ключом --harmony.

          Теперь можно без babel так:
          Читать дальше →
        • Пишем микросервис на KoaJS 2 в стиле ES2017. Часть II: Минималистичный REST

            Koa v2

            Это продожение статьи Пишем микросервис на KoaJS 2 в стиле ES2017. Часть I: Такая разная ассинхронность. Постараюсь угодить начинающему разработчику, который хочет расстаться с express, но не знает как. Кода будет много, текста мало — я ленивый но отзывчивый.
            Читать дальше →
          • Пишем микросервис на KoaJS 2 в стиле ES2017. Часть I: Такая разная ассинхронность

              Koa v2

              У Вас никогда не возникало желания переписать все с чистого листа, «забить» на совместимость и сделать все «по уму»? Скорее всего KoaJS создавался именно так. Этот фреймворк уже несколько лет разрабатывает команда Express. Экспресовцы про эти 2 фреймворка пишут так: Philosophically, Koa aims to «fix and replace node», whereas Express «augments node» [С филосовской точки зрения Koa стремится «пофиксить и заменить ноду» в то время как Express «расширяет ноду»].

              Koa не обременен поддержкой legacy-кода, с первой строчки вы погружаетесь в мир современного ES6 (ES2015), а в версии 2 уже есть конструкции из будущего стандарта ES2017. В моей компании этот фреймворк в продакшене уже 2 года, один из проектов (AUTO.RIA) работает на нагрузке полмиллиона посетителей в день. Несмотря на свой уклон в сторону современных/экспериментальных стандартов фреймворк работает стабильнее Express и многих других фреймворков с CallBack-style подходом. Это обусловлено не самим фреймворком, а современными конструкциями JS, которые в нем применяются.

              В этой статье я хочу поделиться своим опытом разработки на koa. В первой части будет описан сам фреймворк и немного теории по организации кода на нем, во второй мы создадим небольшой рест-сервис на koa2 и обойдем все грабли, на которые я уже наступил.
              Читать дальше →
            • Нейронные сети на Javascript

                image
                Идея для написания этой статьи возникла прошлым летом, когда я слушал доклад на конференции BigData по нейронным сетям. Лектор «посыпал» слушателей непривычными словечками «нейрон», «обучающая выборка», «тренировать модель»… «Ничего не понял — пора в менеджеры», — подумал я. Но недавно тема нейронных сетей все же коснулась моей работы и я решил на простом примере показать, как использовать этот инструмент на языке JavaScript.

                Мы создадим нейронную сеть, с помощью которой будем распознавать ручное написание цифры от 0 до 9. Рабочий пример займет несколько строк. Код будет понятен даже тем программистам, которые не имели дело с нейронными сетями ранее. Как это все работает, можно будет посмотреть прямо в браузере.
                Читать дальше →
              • Релиз Fedora 24. Гонка за версиями

                  Fedora 24
                  Вчера, 21 июня, вышла в свет новая версия Fedora. Что нового в Fedora можете почитать на oppenet. Я уже полтора месяца пользуюсь этой OS и хотел поделиться с хабралюдьми о том стоит ли переходить и вообще стоит ли так часто релизить.
                  Читать дальше →
                • Koajs 2.0: новое поколение фреймворка нового поколения

                    KoaJS logo«Next generation web framework for node.js» — так написано в документации к версии 1.0. Звучит неплохо, я к этому добавлю что 2 года назад после внедрения koa на одном из проектов у наших программистов появился термин “псевдо-синхронный код” (Это когда код выглядит как синхронный но на самом деле исполняется асинхронно). Что за бред Как это работает я расскажу под катом.
                    Читать дальше →
                  • Повышаем отказоустойчивость системы на nodejs

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

                      Это не исчерпывающее руководство к действию, просто я делюсь своим опытом, если вы профи в nodejs можете дописать в коментах свои рекомендации, на которые я с удовольствием сошлюсь в статье.
                      Читать дальше →