В предыдущем разделе мы оценивали градиент путем исследования выходного значения схемы по каждому исходному значению по отдельности. Эта процедура дает нам то, что мы называем числовым градиентом. Однако этот подход все равно считается довольно проблематичным, так как нам нужно вычислять результат схемы по мере изменения каждого исходного значения на небольшое число. Поэтому сложность оценки градиента является линейной по количеству исходных значений. Но на практике у нас будут сотни, тысячи или (для нейронных сетей) от десятков до сотен миллионов исходных значений, и схемы будут включать не только один логический элемент умножения, но и огромные выражения, которые могут быть очень сложными в вычислении. Нам нужно что-то получше.
Читать полностью »
Рубрика «javascript» - 386
Руководство хакера по нейронным сетям. Схемы реальных значений. Стратегия №3: Аналитический градиент
2014-12-04 в 21:22, admin, рубрики: javascript, Блог компании Paysto, нейронные сетиAngularJS + UI Router: проверка авторизации и прав доступа
2014-12-04 в 20:59, admin, рубрики: angular, AngularJS, javascript, javascript framework, ui router, Веб-разработкаЕсли ваше приложение предполагает авторизацию пользователей и/или проверку прав доступа, то вам придется либо изобретать велосипед, либо гуглить в поисках подходящего решения. В принципе, я тоже это делал. В итоге я принял приемлемым для себя описанный ниже вариант.
Предпосылки
Информацию об авторизованном пользователе я решил хранить в sessionStorage, копируя её при запуске приложения в $rootScope
. Также по рекомендации авторов UI Router я храню в $rootScope значения объекты $state
и $stateParam
, для удобного доступа. Информацию же о доступе к тому или иному состоянию можно передавать через блок data
при описании самого состояния. Поскольку в моем приложении везде закрыт доступ, я решил идти от обратного и добавлять значение noLogin = true
для состояний, которые не требуют авторизации, например страницы ввода логина, восстановления пароля или регистрации.
Читать полностью »
Быстрая настройка Grunt для комфортной разработки
2014-12-04 в 15:48, admin, рубрики: css, deployment, grunt, gruntjs, html, javascript, web-разработка, Блог компании bitCalm, Веб-разработка
Во время разработки нашего сервиса bitcalm.com, нам потребовалось организовать автоматическую сборку проекта. Перед нами стояла цель улучшить производительность frontend-части нашего приложения, а также оптимизировать процессы разработки и развертывания на сервере.
Основными задачами, которые требовалось решить, стали:
- Объединение и минификация скриптов
- Объединение и минификация стилей
- Сжатие png-изображений
- Создание спрайтов из всех изображений (с возможностью удобного использования и с поддержкой двух видов спрайтов для девайсов с разным PPI)
- Построение разных версий html-документов для разработки и для продакшна
Первые три пункта выглядят достаточно тривиальными, поэтому я постараюсь заострить внимание на работе со спрайтами и на обработке html.
День рождения JavaScript
2014-12-04 в 11:42, admin, рубрики: javascript, Блог компании Mail.Ru Group, Веб-разработка, день рождения javascriptВсё-таки странно иногда звучит фраза «люди постарше». Особенно применительно к 30-летним. С другой стороны, мир информационных технологий меняется так быстро, что волей не волей приходится употреблять эту избитую фразу. Так вот, люди постарше ещё помнят, что когда-то не было никакого разнообразия веб-браузеров. Мир делился на два полюса, как во времена холодной войны — были только Internet Explorer и Netscape Navigator. NN был на голову лучше соперника (похоже, это просто его карма): он был быстрее, удобнее, с более широким функционалом и продуманным интерфейсом. И в недрах коллектива, создававшего Netscape Navigator в далёком 1995 году, был также разработан один из самых распространённых и популярных ныне языков программирования — JavaScript. Изначально он был наречён LiveScript, но 4 декабря 1995 года его официально переименовали. Так что сегодняшний день можно считать днём рождения JavaScript. С чем мы и поздравляем от всей души всех, кто использует JavaScript в своих проектах по долгу службы или по зову сердца!
Читать полностью »
Polymer: транскрипт видео с Google I-O
2014-12-04 в 5:18, admin, рубрики: javascript, web components, Блог компании Google, Веб-разработка, Мобильный веб Polymer — это специальная библиотека для создания и использования веб-компонентов, а веб-компонент можно определить, как выделенный и независимых HTML код, включающий шаблоны, стили и сопутствующую js-логику. Кстати, недавно на Хабре была интересная статья Веб-компоненты в реализации Polymer от Google о том, что же такое Polymer и чем он может быть полезен.
На самом деле, задача Polymer не только упростить создание сайтов, Polymer должен помочь создавать веб-приложения, способные без дополнительного вмешательства функционировать на различных устройствах: от десктопов и мобильных платформ до телевизоров. Polymer можно назвать воплощением Material Design'а для веба.
И специально для тех, кто интересуется будущим веб и вообще приложений (да-да, эти миры очень тесно связаны! И, если вдуматься, то Polymer связывает их еще больше) мы подготовили профессиональный транскрипт видео докладов с Google IO:
AngularJS – перевод курса от CoodSchool
2014-12-03 в 13:49, admin, рубрики: AngularJS, codeschool, javascript, обучениеДанная публикация является переводом оригинального курса CoodSchool с небольшими дополнениями, которые показались мне уместными в данном контексте. Публикация рассчитана на тех, кто только начинает знакомится с Angular.
Введение
AngularJS — популярная JavaScript библиотека, предназначенная, главным образом, для создания одностраничных веб-приложений с динамически обновляемым содержимым. Библиотека была написано словацким программистом Мишкой Хевери, который, работая в Google, получил от своего шефа задание выучить JavaScript. Он решил, что лучший способ изучить язык — это создать на его основе собственный фреймворк. Angular (звучит как «Ангула» и дословно переводится как «Угловатый») использует концепцию разделения данных и их представления, известную как MVC (M — model (данные), V — view (представление), С — controller (контролер, управляющая прослойка между ними обеспечивающая логику работы приложения).
Читать полностью »
Операция слияния (merge), выполняемая стандартными средствами git, хорошо работает для текстовых файлов, содержащих исходные тексты программ. Но слияние текстовых файлов, содержащих жестко структурированные данные, в частности JSON — это большая головная боль.
Для решения этой проблемы можно подключить к git'у отдельный инструмент слияния для JSON-файлов, который не работает построчно, а учитывает структуру JSON-объектов.
Предлагаю использовать для этого скрипт на javascript, который анализирует сливаемые JSON-файлы и делает слияние на основании структуры и вложенности объектов JSON.
Читать полностью »
Руководство хакера по нейронным сетям. Схемы реальных значений. Стратегия №1: Произвольный локальный поиск
2014-12-01 в 20:25, admin, рубрики: javascript, Блог компании Paysto, нейронные сетиМы начинаем публиковать перевод книги (как называет ее сам автор) «Руководство хакера по нейронным сетям». Книга состоит из четырех частей, две из которых уже закончены. Мы постараемся разбить текст на логически завершенные части, размер которых позволит не перегружать читателя. Также мы будем следить за обновлением книги и опубликуем перевод новых частей после их появления в блоге автора.
Часть 1:
Введение
Глава 1: Схемы реальных значений
Базовый сценарий: Простой логический элемент в схеме
Цель
Стратегия №1: Произвольный локальный поиск
Скрипт сворачивания комментариев на хабре
2014-12-01 в 18:09, admin, рубрики: javascript, userscripts, Веб-разработка, скрипты для хабраДобрый день всем. Я насчёт комментариев к статьям и их длинных и глубоких веток обсуждений, которыми они часто наполняются. Не знаю, как к ним относятся остальные участники сообщества, но у меня часто начинает плавиться мозг от объемов переписок между участниками и отсутствия возможности хоть как-то снизить этот поток информации.
Потому и был написан маленький юзерскрипт, добавляющий две простых фичи:
1. Возможность свернуть-развернуть ветки обсуждений;
2. При открытии страницы, автоматически будут свёрнуты все комментарии выше третьего уровня, за исключением тех веток, где есть непрочитанные вами сообщения, а также тех случаев, когда вы переходите к какому-то конкретному комментарию в статье через ссылку на него.
Пример нового заголовка комментария, ответы к которому были свёрнуты:
Таким образом, мы автоматически отфильтровываем глубокие ветки обсуждений, что сильно облегчает беглый анализ комментариев, но, при желании, мы можем быстро развернуть какую-то из веток и почитать остальные комментарии, если тема оказалась интересной.
Читать полностью »
Sublime Text для фронтэнд-разработчика
2014-12-01 в 12:26, admin, рубрики: css, html, javascript, sublime text, Веб-разработка, инструменты, текстовые редакторы, фронтэндSublime Text на данный момент является одним из самых популярных текстовых редакторов, используемых для веб-разработки, поэтому надо знать его преимущества и недостатки. Вместо того, чтобы шаг за шагом описать все фичи Sublime Text, эта статья познакомит вас с самыми популярными приёмами и полезными плагинами, позволяющими ускорить разработку.Читать полностью »