
Это пост про небольшую игру «Крестики-нолики», которая была написана в целях пополнения опыта программирования на JS. Здесь применяются canvas и DojoBase. Библиотека используется для работы с событиями и для нахождения элементов по id(это очень удобно). Сanvas используется для отрисовки игрового поля.
И сами «Крестики-нолики».
Читать полностью »
Рубрика «javascript» - 464
Небольшая игра «Крестики-нолики» на JavaScript
2014-01-18 в 19:20, admin, рубрики: html5 canvas, javascript, Алгоритмы, крестики-нолики, метки: html5 canvas, javascript, крестики-ноликиСоздание 3D-иллюстраций — прототип системы
2014-01-18 в 11:30, admin, рубрики: 3d графика, drupal, javascript, php, WebGL, геометрия, стереоизображение, метки: 3d графика, drupal, javascript, PHP, геометрия, стереоизображение 
Привет! В институте на моей специальности был курс 'Начертательная геометрия'. Дисциплина мне понравилась с самого начала. А когда к концу курса я узнал, какие страшные штуки можно вытворять, имея за душой всего линейку и циркуль, начертательная геометрия навсегда покорила мое сердце. С тех пор меня не покидала навязчивая идея сделать что-нибудь на компьютере в духе объемных чертежных построений.
Не так давно, я с удивлением обнаружил, что даже мой ноутбук (далеко не самый новый и мощный) поддерживает стандарт WebGL. Стало понятно, что подходящий момент пришел. В результате некоторых усилий получился прототип системы создания и публикации 3D-иллюстраций.
Интересная возможность, которую удалось реализовать — просмотр иллюстраций на 3D-телевизорах в стереорежиме без каких-либо драйверов и плагинов. Вывод осуществляется прямо из браузера в формате Side-By-Side. В общем-то ради этого все и затевалось.
Вполне возможно, что увидеть систему в работе удастся совсем немногим. Прошу простить за возможные хабра-эффекты и торчащие уши – это лишь прототип. Кто хочет узнать о системе подробнее – прошу под кат.
Перевод книги Эдди Османи «Паттерны для масштабируемых JavaScript-приложений»
2014-01-17 в 9:59, admin, рубрики: javascript, архитектура, книга, книга на русском, проектирование, Проектирование и рефакторинг, метки: javascript, архитектура, книга, книга на русском, проектирование
В какой-то момент меня очень удивило что потрясающая и понятная книга о проектировании JavaScript приложений от известного автора до сих пор не переведена на русский язык. Вместе с единомышленниками мы перевели все главы. Сейчас мы внимательно вычитали 5 из них и хотим их показать всем, кто интересуется JS. Каждую неделю мы обещаем публиковать по 2 главы.
Прочитать книгу можно на сайте, который мы специально для нее создали, следить за обновлениями можно по RSS и в твиттереЧитать полностью »
Видеозаписи докладов потока «JavaScript на бекенде» конференции FOSS Sea
2014-01-16 в 17:40, admin, рубрики: FOSS Sea, GeeksLab, javascript, node.js, Блог компании RootUA Media, видео, конференция, метки: FOSS Sea, GeeksLab, javascript, node.js, видео, конференция 
Команда проекта GeeksLab 30 ноября 2013 года в Одессе провела VI специализированную конференцию FOSS Sea: back-end на базе свободных и открытых технологий. Один из потоков мероприятия был посвящен разработке бекенда на JavaScript. В данном потоке с докладами выступили представители таких компаний как: DataArt, Lohika, GlobalLogic, GradSoft, IT Adapter Corp и другие. Презентации и видеозаписи докладов под катом.
Читать полностью »
HuGu — коллективный плейер музыки Вконтакте на node.js
2014-01-16 в 8:53, admin, рубрики: javascript, music, node.js, метки: javascript, music, node.js, vkontakte apiЗачем это надо? А вспомним ситуацию: в офисе работают несколько человек, и у одного к компьютеру подключены музыкальные колонки. — «Вась, смени LoveRadio! Поставь Рамштайна!» И Вася, отвлекаясь от отчета/игры/мысли: «Надоел Рамштайн, давайте лучше „Поющие трусы“ поставлю? Мегазачотные песни!»
А может ли каждый добавлять свои любимые музыкальные композиции в общий плейлист? Через браузер? Из плейлиста Вконтакте? Да, может.
Создание клиентского MVC приложения с помощью RequireJS
2014-01-15 в 15:33, admin, рубрики: javascript, mvc, requirejs, перевод, метки: javascript, mvc, requirejs, переводКак веб-разработчик, вы, наверное, часто писали код JavaScript в одном файле, и, когда количество кода становится все больше и больше, его трудно поддерживать. Для решения этой проблемы вы можете разделить свой код на несколько файлов, добавить дополнительные теги script и использовать глобальные переменные для доступа к функциям, объявленным в других файлах. Но это загрязняет глобальное пространство имен и для каждого файла дополнительный запрос HTTP снижает пропускную способность, что увеличивает время загрузки страницы.
Если это знакомо вам, наверное вы осознали необходимость в реорганизации вашего фронтенд кода, особенно если вы создаете крупно-масштабируемое web-приложение с тысячами строк кода JavaScript. Мы должны по-новому организовать всю эту неразбериху, чтобы код стало легче поддерживать. Новый метод заключается в использовании загрузчиков скриптов. В интернете можно найти много реализаций, но мы возьмем один из лучших, под названием RequireJS.
В этой пошаговой инструкции вы узнаете, как построить простое MVC (Model — View — Controller) приложение с помощью RequireJS. Вам не потребуются какие-либо предварительные знания в загрузке скриптов, основы мы рассмотрим в этой статье.
Читать полностью »
Сегодня последний день, когда вы можете воспользоваться бесплатными купонами на COLT
2014-01-15 в 15:06, admin, рубрики: COLT, javascript, Блог компании CodeOrchestra, метки: COLT, javascript Остались считанные часы до завершения нашей акции по раздаче бесплатных полугодовых лицензий COLT.
Если вы не воспользовались купоном и не купили подписку COLT со 100 процентной скидкой, то завтра вы это сделать уже не сможете. Поторопитесь. Акция закончится в полночь по Москве.
Для того чтобы воспользоваться купоном вам нужно зайти на страницу покупки COLT и купить лицензию COLT со 100 процентной скидкой. Чтобы воспользоваться скидкой вам нужно добавить в поле «Coupon Code» ваш код и нажать кнопку «Recalculate». При покупке COLT с купоном деньги с карты сниматься не будут.
Читать полностью »
MathML или Latex – как мы реализовывали меняющийся оклад в расчете ЗП с помощью MathJax
2014-01-15 в 5:14, admin, рубрики: javascript, latex, redmine, Блог компании Монастырёв и Ко, Веб-разработка, формулы, метки: latex, redmine, формулыСтатья будет полезна web-разработчикам, которые задумались об отображении математических формул в браузере, ну и, наверное, другим IT-ам для общего развития.
У нас в компании уже давно внедрена система стимулирования сотрудников (KPI) на базе «Redmine», совмещающая функции расчета ЗП. Расскажу о ней в двух словах.
У каждой должности есть какой-то оклад, сотрудник, занимающий должность, может славно поработать и умножить свой оклад на коэффициент результативности, который вычисляется на основе кучки показателей настроенных для его должности. Коэффициент результативности может быть как больше, так и меньше единицы. Таким образом, моделируя показатели, можно стимулировать сотрудников определенных должностей работать в определенном направлении.
Все это может выглядеть примерно вот так:

Angular Light. Управляем декларативным биндингом данных в HTML
2014-01-14 в 21:05, admin, рубрики: angular light, javascript, web-разработка, Веб-разработка, метки: angular light, web-разработка В angular есть 2 инструмента вывода информации в DOM — это директивы и декларативный биндинг данных в HTML {{model}}.
В то время когда директивы обладают большими возможностями, декларативный биндинг немного ограничен, он делает $watch на модель с возможностью вызвать фильтры и по большому счету — все. А хотелось бы больше гибкости.
Например если посмотреть на библиотеку bindonce для Angular.js, основная идея — это разовый вывод информации без использования $watch.
И для того что-б её можно было использовать в любом месте, для любого атрибута, разработчик сделал ряд отдельных директив: bo-text, bo-href-i, bo-href, bo-src-i, bo-src, bo-class, bo-alt, bo-title, bo-id, bo-style, bo-value, bo-attr и bo-attr-foo. Но по сути, все они делают одно и тоже и по логике это должна быть одна директива.
Так же это отклоняется от декларативного биндинга данных, задуманного в Angular.js, т.е. вместо
<a href="{{link}}">{{name}}</a>
нужно писать
<a bo-href-i="{{link}}" bo-text="name"></a>
Т.е. для чего был придуман декларативный биндинг данных, в этой ситуации не работает.
Поэтому появилась идея реализовать директивы для декларативного биндинга данных.
Как это работает в Angular Light — просто нужно указать имя директивы и перед этим поставить знак "#", т.е. вместо {{model}} будет {{#directive model}}.
Бесполезный, но простой пример счетчика:
<div al-app>
counter {{#counter model}}
</div>
Делаем биндинг «model» и подключаем директиву «counter», для простоты я опустил использование «model» в данной директиве:
alight.text.counter = function(callback, expression, scope, env) {
var n = 0;
setInterval(function(){
n++;
callback(n) // set result
scope.$scan() // $digest
}, 1000);
}
Первые шаги к вселенной MeteorJS
2014-01-14 в 10:48, admin, рубрики: fullstack development, javascript, javascript framework, Meteor, Meteor.JS, Meteorjs, node.js, метки: fullstack development, javascript, javascript framework, Meteor, meteorjs 
Если вы интересуетесь клиентским программированием, то как и я, вероятно, могли слышать о Meteor, уже не новом веб-фреймворке, который относится к набирающим популярность, так называемым «фулл-стек» фреймворкам. О нем уже писали на Хабре, чтобы не дублировать информацию, можно почитать здесь или тут. Я довольно давно слышал о метеоре, но все никак не решался его пощупать. И вот, пришли очередные выходные, и я снова наткнулся на него. В этот раз я решил честно попробовать, что это такое. Может быть, этот пост даст кому-то небольшой толчок к началу изучения или хотя бы знакомства с этим инструментом. Тогда это было бы не зря.
Disclaimer: может вызвать зависимость.
Давайте же сделаем первые шаги к освоению meteorjs, добро пожаловать под кат.
Читать полностью »
