• +3

    Купил у них уже около 5 книг. Мне все ссылки на почту приходили, возможно у них проблема с отправкой почты на Ваш ящик. У меня ящик на gmail, с ним проблем нету.


    Тут не "лохотрон" а идеализированное представление о доставке контента через электронную почту. :)

    Книга «Машинное обучение»
  • +1

    Согласно данным СБУ по вирусу Petya.A (состоянием на 21.00 по Киеву), вирус эксплуатирует уязвимость MS17-010
    Там есть рекомендации и ссылки на апдейты для всех версий Windows (на украинском)

    Украина подверглась самой крупной в истории кибератаке вирусом Petya
  • 0

    Очень впечатляет, продолжайте!

    Автопилот своими силами. Часть 1 — набираем обучающие данные
  • 0

    Мне понравилось, очень познавательно. Кто, хоть раз верстал рекламу или дизайнил баннер, знает, как не просто сделать обрезку волос на портрете или вырезать из фона зверюшку.

    Урок photoshop. Как вырезать сложный объект из фона
  • +1
    Мне стало интересно заглянуть в ядро koa и узнать, как реализована работа с Promise. Но я был удивлен, т.к. ядро осталось практически таким же, как в предыдущей версии. Авторы обеих библиотек express и koa одни и те же, неудивительно, что и подход остался таким же. Я имею ввиду структуру промежуточного ПО (middleware).

    koa принципиально отличается от express и подход там совершенно другой. Работа с промисами там сводится к тому что в обработчике запроса ассинхронные функции вызываются через async/await синтакс со всеми вытекающими плюшками.


    По поводу yeps-benchmark, там koa2 запускаеться через node-cluster, что на мой взгляд, не лучшее решение. И что пытаемся доказать, что роуты обрабатываються меделенее? Не спорю, но роуты это не часть koa, koa-router это сторонний middleware, роутинг не входит в базовую функциональность koa.


    Про простоту и элегантность я б еще поспорил. А ошибки как ловить?

    Очередная node.js-библиотека…
  • +3

    Никогда не интресовался Blockchain просто потому что для работы не нужно а для личного развития не хотел тратить на это время. Купил PDF-ку. Ликбез прошел успешно :) Интересна сама философия децетрализованых сетей.


    И поскольку я рыбак, то таким как я будет еще интересно узнать, что на обложке изображен
    розовый пилобрюх (Hoplostethus mediterraneus) или средиземноморский большеголов.


    Эта глубоководная рыба распространена в Атлантическом и в западной части Индийского океанов. Обитает на глубинах от 100 до 1175 метров. Розовый пилобрюх достигает в длину 42 сантиметров, имеет продолго-
    ватую форму тела, большие глаза и раздвоенный хвост.
    image

    Книга «Децентрализованные приложения. Технология Blockchain в действии»
  • +2

    Еще про генераторы забыли. Они поддерживаться уже давно.

    Еще один велосипед для борьбы с callback hell в JavaScript
  • 0

    Если нужно поставить на поток попробуйте tesseract, там есть поддержка большого количества языков. Он, конечно же менее комфортен, но с подобным чеком справиться без поблем.


    Недавно обновились натренированные модели для многих языков

    Распознавание чеков в Google Docs с помощью ABBYY OCR SDK
  • 0

    :)
    Да, действительно, почему бы не использовать бесплатный Tesseract, установить нужные языки. Для многих документов этого было бы достаточно.

    Предновогодний релиз API и портала Scorocode
  • 0

    Я недавно писал статью про машинное обучение на JS, там как раз очень нехватало такой теоретической части как у Вас. Я добавил линк на вашу статью. Очень хорошо и доступно получилось.

    Нейронные сети на JS. Создавая сеть с нуля
  • 0

    Можете посмотреть еще мою статью:
    Нейронные сети на Javascript

    Нейронные сети на JS. Создавая сеть с нуля
  • 0

    User.findById синхронный?

    Node.js 7.0.0 зарелизился. Встречайте async/await без babel
  • +1

    В том то и дело что async/await выглядит как синхронный код а выполняется асинхронно.


    Другими словами когда вы ждете ответа с базы вы не блокируете поток. В этот момент ваше приложение может обрабатвать другие запросы от пользователей.

    Node.js 7.0.0 зарелизился. Встречайте async/await без babel
  • +1

    А если вам нужно проверить не случилось ли ошибки при получении данных из базы
    try {
    user = await getUser();
    } catch (err) {
    // Error handling
    }
    Вы представляете во что превратиться Ваш код?


    async/wait это отличная конструкция для написания человек-читаемого и легко понимаемого кода. Потому что код выглядит как синхронный а виполняется асинхронно.


    Ваше заявление "С Promise получается короче" работает только для примитивных конструкций, для более сложных это не всегда справедливо

    Node.js 7.0.0 зарелизился. Встречайте async/await без babel
  • 0

    Чтоб не блокировать исполнение других обработчиков. Например к вашему web-серверу пришло несколько запросов.

    Node.js 7.0.0 зарелизился. Встречайте async/await без babel
  • +1

    Напишите аналог на промисах через рекурсию

    Node.js 7.0.0 зарелизился. Встречайте async/await без babel
  • 0

    Напишите аналог на промисах, у вас тут "независимая" обработка кажного юзера.

    Node.js 7.0.0 зарелизился. Встречайте async/await без babel
  • 0
    let user,spammers = [];
    do {
        user = await getUser();
        if (await isSpammer(user)) {
            spammers.push(user)
        }
    } while (spammers.length <= 10 && user !== null);
    console.log(spammers)

    Ну и все это, конечно, внутри асихронной функции.

    Node.js 7.0.0 зарелизился. Встречайте async/await без babel
  • +3

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


    Слабо?

    Node.js 7.0.0 зарелизился. Встречайте async/await без babel
  • 0

    Это не драфт, предложение находится в Stage 3 ("Candidate"), в следующем месяце будет частью стандарта Stage 4 ("Finished").

    Node.js 7.0.0 зарелизился. Встречайте async/await без babel
  • 0

    Если речь идет о Windows:


    Node.js 7.0.0 зарелизился. Встречайте async/await без babel
  • 0

    Как-то однобоко получилось.
    Есть монолит, есть сервисы, есть монолит+сервисы. И то, и то востребовано в разработке.

    Микросервисы: пожалуйста, не нужно
  • 0

    Слайды презентации: http://www.slideshare.net/profyclub_ru/dom-aviasalesru (чтоб "руками" ссылки не набирать :) ).


    Быстрый рендеринг с DOM шаблонизаторами
  • 0

    В мире nodejs самая популярная ORM для mysql это драйвер MySQL :).


    У себя в компании мы не используем ORM. В этой статье мы говорим про микросервис, у которого, как правило, количество кода и таблиц небольшое, сам микросервис сильно "заточен" под базу с которой он работает. От него требуеться быстродействие и минимальное потребление ресурсов.


    Вот некоторые ORM, на которые когда-то смотрел:


    Пишем микросервис на KoaJS 2 в стиле ES2017. Часть II: Минималистичный REST
  • 0

    Так в новой редакции у меня так и есть. Там роутер производит 2 разных middleware: 1 сами роуты, 2 заглушка, котрая правильно отвечает на вызов недопустимого метода. Но ее теретически можно не подключать, от этого REST сильно в функциональности не потеряет. В первой редакции это было не так, там эксортился инстанс роута, а он сам по себе middleware не является. Для генерации основного middleware у него надо вызвать метод router.routes()

    Пишем микросервис на KoaJS 2 в стиле ES2017. Часть II: Минималистичный REST
  • 0
    GET /product — без пагинации, без вывода нужных полей, а сразу все…

    А вы что хотели чтоб я вам здесь фреймворк написал? В статье столько кода, сколько нужно для демонстрации подхода Koa 2.


    Сохранение данных модели без валидации.

    Вы, видимо, еще очень начинающий программист — там все есть. Если это не так напишите мне SQL-инъекцию для этого сервиса.


    Про модель Product я вообще молчу.

    Да вы не молчите, пишите, не стесняйтесь, может мы разберемся где у вас проблемы.

    Пишем микросервис на KoaJS 2 в стиле ES2017. Часть II: Минималистичный REST
  • +1
    Примечательно, что этот модуль — обёртка над node-fibers.
    Так это еще один плюс в копилку async/await. Смысл для такой "крутой техногии" даунгрейдится в "более примитивную". Кроме того, из обсуждения ниже понятно, что замеры производительности сомнительны даже для babel.

    Лучше я напишу в одном месте Future.fromPromise( p ).wait(), чем буду по всему коду раскидывать async и await.
    Сомнительная красота.

    В том-то и дело, что он не добавляет никакого нового синтаксиса. Только апи для запуска и переключения волокон.
    А что api меняться не может?

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

    Тут "толерантность" не совсем подходит, синергия в случає с модулем обёрткой над node-fibers.


    У node-fibers есть сильные стороны, которые вы уже перечислили но есть проблемы:


    • Есть некий талантливый разработчик Marcel Laverdet, который это все кодит. Ему сейчас интересно, репозиторий живой, но сильная зависимость от одного разработчика это риск для технологии. Ведь не всем она нравиться и ваша голосовалка говорит о том что даже после ваших блестящих аргунетов лидирует async/await


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


    • Изомофный код, который становиться популярным в современных фреймворках не может использовать fibers, т.к. нету для него транспайлера.
    Такая разная асинхронность
  • +1

    Дискуссия async/await vs fibers началась несколько дней назад в коментах к моей статье Пишем микросервис на KoaJS 2 в стиле ES2017. Часть I: Такая разная ассинхронность. (название похоже или мне показалось :) ). Там эта цепочка не вызвала бурного обсуждения, но как я вижу, дискуссия не окончена.


    • Стандарт Async Functions будет принят в конце ноября, сейчас он в стадии 'Stage 3 ("Candidate")'. Это означает что Ваш код, написанный под этим синтаксисом меняться не будет и Вас нету рисков что-то переписывать.


    • Неккоректно сравнивать быстродействие async/await в совокупности с транспайлером babel, так как это не самая быстрая реализация этого синтаксиса. Если использовать модуль asyncawait то, по утверждению автора модуля, производительность составлячет 79% от callback-стиля оформления кода. Другими словами потеря в скорости несущественная. Ситуация может измениться в нативной реализации, которая вот-вот, появится.

    • Огромное количество модулей уже описаны промисами, вам стоит просто написать await и ваше приложение ассинхронно подождет.


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

    Мне симпатична технология Fibers, но я не понимаю зачем ей противопоставлять async/await. Обе имеют свои плюсы и минусы.

    Такая разная асинхронность
  • 0
    Нет не принят, из ES 2017 тут используется только синтаксис async/await, который находиться в стадии 'Stage 3 («Candidate»)', ожидаемое время стадии 'Stage 4 («Finished»)' конец ноября, до принятия «Async Functions»|осталось ждать несколько месяцев.
    Все остальные синтаксические конструкции из стандарта ES 2015.
    Пишем микросервис на KoaJS 2 в стиле ES2017. Часть II: Минималистичный REST
  • 0
    Ну да
    console.log(Boolean(1)) // true

    Немного сложнее с датой, обычно для этого используют Moment.js:
    console.log(moment("2016-08-07 22:48:37",'YYYY-MM-DD HH:mm:ss').toDate() instanceof Date) // true


    Пишем микросервис на KoaJS 2 в стиле ES2017. Часть II: Минималистичный REST
  • 0

    Вы правы, хотел минимизировать. Поправил код, теперь экспортрую 2 функции.

    Пишем микросервис на KoaJS 2 в стиле ES2017. Часть II: Минималистичный REST
  • 0

    Есть модуль koa-connect или koa-express. Оба позволяют подключать модули от express. Они спроектированы для версии koa 1.0 но через koa-convert можно подключить к Koa2, если есть такая необходимость. Правда не 100% експресовских middleware будут работать по такой схеме, т.к. в Koa некоторые объекты могут называться по-другому.


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


    По сравнению с koa у любого callbeck-style фреймворка (не только express) есть слабое место в обработке ошибок. Даже если вы в своем коде сделали все правильно, то ошибка может возникнуть во внешнем модуле и, как итог, ваш процесс падает, конечно там есть решение через домены, но они уж точно не добавляют красоты и наглядности вашему приложению. У koa такой проблемы нет, вы можете отлавливать все через try/catch как при работе сихронного кода, как показано в примере статьи. На koa уронить процесс значительно труднее, даже если вы сами не обработаете исключение, его обработает koa и не упадет.

    Пишем микросервис на KoaJS 2 в стиле ES2017. Часть I: Такая разная ассинхронность
  • 0

    Если я правильно понял, вы хотете сказать что организация ECMA собирается добавить в стандарт "костыли"? Звучит это как-то, мягко говоря, не убедительно. Откуда вы знаете, что с какой скоростью будет реализовано?


    В Koa используется async/await, я Вам его не навязываю, просто рассказваю о фреймворке. Вам нравиться модуль Fibers? Я против него ничего не имею — используйте.

    Пишем микросервис на KoaJS 2 в стиле ES2017. Часть I: Такая разная ассинхронность
  • –1

    async/await это то что через год станет частью JavaScript, остальные уровни не из нашей игры :)

    Пишем микросервис на KoaJS 2 в стиле ES2017. Часть I: Такая разная ассинхронность
  • 0

    Это хороший фреймворк — на нем создавались самые первые версии микросервисов нашей компании, мы использовали его совместно с модулем async. Некоторые из этих сервисов по сей день обслуживают ненагруженную часть сайта, которую мы еще не успели переписать. Но это CallBack-style фреймворк и они с Koa находятся в разных весовых категориях.

    Пишем микросервис на KoaJS 2 в стиле ES2017. Часть I: Такая разная ассинхронность
  • 0

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


    У вас будет шикарный фундамент, и выбор middleware для реализации роутинга, шаблонизации, сесии и т.д. Про некоторые полезные middleware я напишу во второй части.

    Пишем микросервис на KoaJS 2 в стиле ES2017. Часть I: Такая разная ассинхронность
  • 0

    Я еще раз потренировал модель на полной 60 000 выборке, прогнал тестовую выборку (10 000 записей) и получил 1,77% погрешность. Это средний показатель, если смотреть таблицу на сайте MNIST.

    Нейронные сети на Javascript
  • 0

    Не уверен что это задача для JavaScript. При распознавании изображений во входном слое будет очень много нейронов, а nodejs и др. реализации js однопоточные. (Это означает что в один момент времени будет задействовано только одно ядро). Но натренированную модель для классификации фото загрузить в js реально.

    Нейронные сети на Javascript
  • 0

    Я не проганял, после выходных отпишу.

    Нейронные сети на Javascript