Рубрика «javascript» - 378

image

Меня всегда привлекали отзывчивые, динамичные интерфейсы, созданные на Javascript, но каждый раз, пытаясь погрузиться в изучение этого языка, я превращал свой мозг в кашу и ел её оставлял это до «лучших» времен, возвращаясь к статичным страницам на клиенте и PHP на сервере. Время шло.

Год назад, шатаясь по страницам сети, я наткнулся на статью про Coffeescript. Хм, интересно… Пары примеров кода было достаточно, чтобы заразиться идеей где-то его применить, но что то меня напрягало — хотелось мне какой-то фреймворк, который сам заботился бы о компиляции coffee в js. Так я нашел Rails, а вместе с ним ruby, gems, sass и кучу всего того, что привело меня в экстаз критическую точку невозврата…

Доброго времени суток, господа! Меня зовут Денис, и в этой статье я хочу поделиться с вами своими взглядами на разработку front-end'a и небольшой историей изобретения одного велосипеда, а вот очередного или нет — судить вам.
Читать полностью »

«Дуров, верни стену» или «Хабрахабр + Geektimes + Мегамозг» в одной ленте - 1

Когда разбушевался Роскомнадзор и Хабр по вынужденным причинам разделился, появился «младший брат», которого не жалко — Geektimes. Мне такое разделение пришлось не по душе и Я сделал для локального пользования небольшое расширение для браузера, которое выводит посты Geektimes на Хабре в одной ленте.

Вчера же, случилось еще одно разделение, у Хабра появляется «кузен гуманитарий» — Мегамозг. Добавить его ленту в общую ленту на Хабре Мне не составило труда. Увидев настроение пользователей от всех этих разделений, Я решил выложить это расширение в общий доступ, возможно Вам тоже будет удобней так читать Хабр (по старинке).

Читать полностью »

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

Р. Брэдбери

Введение

В статье описан Backend-as-a-Service подход к хранению и обработки данных. Рассказаны преимущества и недостатки представителя такого подхода — сервиса parse.com. Коротко представлен сервис аутентификации пользователей через соц. сети uLogin. Основное назначение — показать, как эти два сервиса могут взаимодействовать, чтобы проект не требовал регистрации пользователей по логину и паролю, но в то же время сохранилась возможность авторизации пользователей к действиям над объектами.

О BaaS и parse.com

Parse.com — один из самых популярных провайдеров backend-as-a-service (BaaS). BaaS подход позволяет не поднимать свой сервер для хранения и обработки данных приложения. Это используется в мобильных разработках и в обычном вебе. Parse.com имеет свои SDK под несколько платформ, в том числе серверных. Но я расскажу о javascript.

Возможность работать с базой данных через javascript, не поднимая свой сервер, открывает отличные возможности, например, для Single page application (SPA), которое можно хостить на Github Pages, Bitbucket и многих других бесплатных. Первый вопрос, который у меня возник, когда я услышал про работу с БД из клиентского кода — это разграничение прав доступа, так как ключи общеизвестны. Изучив документацию parse.com, я выяснил, что для этого используется авторизация пользователей. Каждый пользователь имеет свой логин и пароль. SDK имеет методы регистрации нового пользователя по логину и паролю, аутентификации по этим же данным. Можно добавить email, при этом сам parse.com умеет отправлять настраиваемые письма для верификации email.
Читать полностью »

WebSocket RPC или как написать живое WEB приложение для браузера - 1

В статье речь пойдет о технологии WebSocket. Точнее не о самой технологии, а о том, как ее можно использовать. Я давно слежу за ней. Еще когда в 2011 году один мой коллега прислал мне ссылку на стандарт, пробежав глазами, я как-то расстроился. Выглядело настолько круто, и я думал, что в момент, когда это появится в популярных браузерах, я уже буду планировать, на что потратить свою пенсию. Но все оказалось не так, и как гласит caniuse.com WebSocket не поддерживается только в Opera Mini (надо бы провести голосование, как давно кто-либо видел Opera Mini).

Кто трогал WebSocketы руками, тот наверняка знает, что работать с API тяжело. В Javascript API достаточно низкоуровневый (принять сообщение — отправить сообщение), и придется разрабатывать алгоритм, как этими сообениями обмениваться. Поэтому и была предпринята попытка упростить работу с вебсокетами.

Так и появился WSRPC. Для нетерпеливых вот простое демо.
Читать полностью »

Передохнем от верстки всяких пользовательских интерфейсов и просто порисуем на CSS. Рисовать будем такую вот сцену:

Рисуем анимированную сцену с помощью css - 1

Смотреть на jsfiddle.

В статье я попробую описать пошаговое создание этой сцены.

Читать полностью »

Привет!

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

Я расскажу об инструменте для работы с событиями, который изначально являлся частью конструктора, но затем был вынесен в отдельный плагин для jQuery — jquery-behavior.

Плагин использует функционал jQuery, дополняя его следующими возможностями:

  • Работа с раздельными группами обработчиков событий. Для этого используются контроллеры событий.
  • Можно отключить все обработчики событий контроллера разом, не перечисляя их.
  • Слежение за срабатываниями обработчиков событий.
  • Можно узнать точное количество вызовов каждого из них.
  • Можно приостанавливать работу отдельных обработчиков событий, или всего контроллера разом.
  • Возможность получить полный перечень обработчиков событий конкретного элемента, обработчиков событий с определенным пространством имен или просто всех обработчиков событий контроллера.

Читать полностью »

Пишем драйвер поддержки графовой базы данных Neo4j для Meteor

В Meteor любая работа с даными связана с двусторонней реактивностью. На данный момент 100% реактивностью обладают встроенная в Meteor MongoDB и Redis (оба драйвера разработаны в стенах Meteor), частично реактивность реализована для MySQL и MSSQL (сторонними разработчиками).

Для вышеуказанных баз данных реактивность реализована посредством observer'ов, которые сообщают где, как, когда и какие данные изменились, для того чтобы драйвер, обслуживающий связь [данные <-> представление], знал какие данные и у каких клиентов обновить. Neo4j лишен каких-либо watcher'ов и observer'ов, но это нас не остановило. Как мы вышли из данной ситуации и зачем нам нужен Neo4j читайте под катом.
Читать полностью »

В последние десять лет мой стандартный ответ на вопрос «с какого языка начинать знакомство с программированием?» был прост — Python. Теперь я меняю свою рекомендацию. Python все еще хороший язык. Он позволяет сфокусироваться на задаче и не волноваться об архитектурных заморочках. О штуках, которые опытные программисты считают важными, позабыв о том, каково это — быть абсолютным новичком. Сам язык растворяется на фоне, и вместо объяснения возможностей и философий, уроки посвящены генерации музыкальных звукорядов, вычислению расстояний на стадионе в зависимости от беговой дорожки, или написанию автоматического игрока в покер или ятцы.

И вот в один прекрасный день студент задаст невинный вопрос: «А как сделать так, чтобы симулятор покера был не в командной строке, а в окне, с кнопкой для выдачи следующих карт?»
Читать полностью »

Вместо предисловия.
Микширование в Unity 5.0 через AudioMixer это, наверное, очень круто.
Но мне нужно было решение здесь и сейчас (на тот момент — в 4.5.2f1).

Задач было три:

  • 1а. Плавное затухание эмбиента (или саундтрека, если хотите) предыдущего уровня при переходе на следующий.
    1б. Далее, звук удаляется через заданное количество времени.
  • 2. Плавное возникновение (усиление громкости звука от 0 до 1) эмбиента после загрузки уровня.
  • 3. Программное микширование эмбиента с самим собой — т.е. музыка, за ~10 секунд до своего финала, должна плавно затухать и плавно переходить с усилением в собственное начало.
    Читать полностью »

Доброго дня, друзья!

Тема функционального программирования раскрыта на Хабре весьма неплохо, есть целая куча статей посвященных λ-исчислению, числам Чёрча и подобным темам, так что ничего нового я не открою, зато мы напишем одну бесполезную и крайне неэффективную программу.

Для того, чтоб жизнь мёдом не казалась, ограничим себя небольшим подмножеством языка JavaScript, а именно, будем использовать только анонимные функции от одного аргумента. Больше нам ничего не потребуется (ну почти :)).

Начнем с определения факториала, и посмотрим, что нам понадобится в процессе решения задачи:

var fact = function (n) {
  if (n === 0) return 1;
  return n * fact(n - 1);
};

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

Готовы?
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js