Сегодня получил вот такое интересное письмо:
Наконец-то что-то новенькое и интересное появилось. Цена, по-моему конечно немного завышенная относительно его характеристик(222,31 €), но такому аппарату я считаю место быть на рынке.
Читать полностью »
Рубрика «javascript» - 458
Стартовала Online продажа Revolution Geeksphone
2014-02-21 в 5:31, admin, рубрики: Firefox, Firefox OS, geeksphone, html, javascript, метки: Firefox OS, geeksphone, javascriptInit.js: Зачем и как разрабатывать с Full-Stack JavaScript
2014-02-20 в 6:33, admin, рубрики: backbone, express, grunt, javascript, mongodb, Node, node.jsИстория
Итак, у вас и у вашего партнера появилась замечательная бизнес-идея. Верно? Вы постоянно добавляете в уме все новые и новые возможности. Вы регулярно спрашиваете у потенциальных клиентов их мнение, и все они без ума от вашей идеи.
Окей, значит людям это нужно. На этом можно даже заработать денег. И единственная причина, по которой люди до сих пор этим не пользуются: вы не реализовали свою идею. Пока не реализовали.
И наконец, в один прекрасный день вы решили: “Сделаем это!”. И вот вы уже пытаетесь разобраться как реализовать бизнес-логику своего приложения, ту киллер-фичу, которая будет двигать продукт вперед. У вас есть идея как это сделать, и вы знаете, что способны на это. И вот вы говорите: “Готово! Работает!” У вас есть успешный прототип! Осталось только упаковать его в веб приложение.
“Окей, сделаем сайт,” говорите вы.
А только потом вы понимаете, что для этого нужно выбрать язык программирования; нужно выбрать (современную) платформу; нужно выбрать какие-то (современные) фреймворки; нужно настроить (и купить) хранилище, базы данных и хостинг; нужно обеспечить интерфейс для администрирования; нужно обеспечить контроль доступа и систему управления контентом.
Перед вами десятки и десятки архитектурных решений, которые необходимо принять. И вы не хотите ошибиться: требуются технологии, которые позволят вести быструю разработку, поддерживают постоянные итерации, максимальную эффективность, скорость, устойчивость и многое другое. Вы хотите быть бережливым (lean) и гибким (agile). Вы хотите использовать технологии, которые помогут вам быть успешным как в краткосрочной, так и в долгосрочной перспективе. А выбрать их далеко не всегда так просто.
“Я перегружен”, говорите вы и чувствуете себя перегруженным. Энергия уже не та, что была в начале. Вы пытаетесь собраться с мыслями, но работы слишком много. Прототип медленно блекнет и умирает.
Читать полностью »
Тестируем MeteorJS-приложение с помощью Laika
2014-02-19 в 16:14, admin, рубрики: javascript, Meteor.JS, Meteorjs, тестирование, метки: javascript, meteorjs, тестированиеВсем привет! Этот небольшой пост посвящен системе тестирования MeteorJS-приложений Laika от Arunoda Susiripala. Ее особенности довольно интересны:
- Laika запускает свои тесты так же, как запускается реальное приложение (используется PhantomJS)
- Каждый тест изолирован, т.е. заново запускается ваше MeteorJS-приложение с чистой базой данных
- Вы можете использовать для разработки и meteor, и meteorite, laika прекрасно работает с ними обоими
- Вы можете запускать проверку на сервере и клиенте в одном тесте. Это поможет протестировать такие моменты, как права доступа (permission), подписки (subscriptions) и вызовы методов (method calls)
- Так как MeteorJS работает в реальном времени, то вам потребуется тестировать приложение при работе нескольких клиентов одновременно. Laika это может.
- Возможность использования событий для более точного тестирования, т.е., фактически, эмуляция работы пользователя
- Передача значений в код во время выполнения теста через аргументы
- Ожидание окончания генерации шаблонов (templates)
Новый интерфейс Яндекс.Метро и технологии, с помощью которых он работает
2014-02-19 в 6:09, admin, рубрики: javascript, Блог компании Яндекс, Веб-разработка, метки: javascriptСегодня мы запустили новую версию веб-интерфейса сервиса Яндекс.Метро. Теперь в новом «островном» дизайне доступны схемы метрополитена пяти городов. Но мы обновили не только визуальную часть, но и перенесли всю логику с серверной стороны на клиентскую.

В этом посте мы хотели бы рассказать, как именно мы это делали, какие решения выбирали и почему.
Сервис Яндекс.Метро был запущен в далеком 2007 году. С тех пор веб-интерфейс практически не развивался, дизайн выглядел откровенно устаревшим. Почтенный возраст сервиса сказывался и на технической стороне. Все схемы представляли собой наборы изображений в формате GIF, на которых при помощи координат размещались объекты. Из-за этого возникали трудности с обновлением графа, нельзя было самостоятельно вносить изменения в схему (приходилось привлекать аутсорсеров, заказывать у них картинки). Так как названия станций также были вшиты в картинки, локализация схем потребовала бы генерации полных наборов GIF-изображений.
Читать полностью »
Клон игры JezzBall / KBounce / «Неугомонные шарики» на html5
2014-02-19 в 5:59, admin, рубрики: game development, html, html5, javascript, метки: html5 В последнее время все больше и больше игр делается под браузеры. Помимо разработки новых новых игр наблюдается тенденция «клонирования» старых игр. В качестве примера можно привести такие игры как Battle City, DX-BALL.
Смотря на разработки третьих лиц, у меня все больше и больше возникало желание сделать что-то подобное, написать свою браузерную игрушку. Но каждый раз начиная что-то делать я вставал в тупик, т.к. отсутствие фантазии и дизайнеских навыков давали о себе знать. Не так давно я увидел пост о том, как ребята из студии BorodinART сделали клон одной из любимых игр детства — DX-BALL. Этот пост вдохновил меня и я решил сделать клон стандартной игрушки из KDE — KBounce или «Неугомонные шарики».
Читать полностью »
Как мы :hover на iOS побеждали…
2014-02-18 в 20:59, admin, рубрики: css, html, iOS, javascript, safari, Веб-разработка, метки: css, html, iOS, javascript, safariНи для кого, думаю, не секрет, что touch-устройства обрабатывают «мышиные» события несколько иначе, не так, как это происходит на десктоп-браузерах…
Самый яркий для меня пример, это обработка псевдокласса :hover. Для начала iOS7, например, не будет реагировать на hover если только на элемент, или его родителя, не навешена обработка события click. Это хорошо видно вот на этом примере: jsfiddle.net/H8EmG/ — сколько не тыкай пальцем в текст — никаких подчеркиваний не увидишь. А в этом примере jsfiddle.net/H8EmG/1/ «тычок» пальцем в текст будет приводить к его подчеркиванию. Интересный факт — пока не ткнем в другой элемент, текст так и будет сидеть под ховером…
Другой интересный пример, это обработка появления элементов «по-наведению»: jsfiddle.net/ASRm9/1/ Попробуйте нажать на текст. Сперва вы увидите текст «HOVER!», появившийся внутри строки, а вот второе нажатие уже вызовет alert('click'). Это происходит потому, что iOS понимает что за :hover что-то скрыто, и старается не сломать поведение, заложенное автором сайта.
Но однажды мы столкнулись с такой багой, объяснить которую мы не смогли до сих пор, а на ее локализацию потребовался не один отладки на iPad… Желающие подробностей, а также хитрого, как мне кажется, способа решения, наверное, всех проблем с :hover разом — прошу под кат…
Declarative event binding / handling
2014-02-18 в 8:55, admin, рубрики: coffeescript, Events, javascript, метки: coffeescript, Events, javascriptВсем привет! Хочу показать свой кусочек CoffeeScript для декларативной подписки и обработки событий.
Предистория
У меня 5 лет инженерного опыта, включающего в себя .NET (+forms, +WPF, +.NET MVC), Java (+Swing, +Tapestry5, +Groovy), JavaScript (+CoffeeScript, +Node).
Последний год я активно пишу собственное одностраничное веб-приложение работающее без перезагрузки, (о котором речь будет в следующих выпусках). Вся динамическая часть пользовательского интерфейса создается на клиенте, с сервера приходят только данные. Как часто бывает в UI, я имею дело с деревом компонентов. Разумеется, для организации взаимодействия дерева мне нужен механизм отправки и обработки событий. Я решил написать свой, и не использовать Backbone, или что-то из Google Closure. В любом случае у меня был опыт реализации этюда Слушатель (Listener pattern).
Класс ИспускательСобытий первой версии если ты хотел слушать его — просто записывал тебя в массив слушателей. Когда возникало событие «Ч» он обходил массив, и искал слушателей с методом «наЧ», и вызывал его. Типа как в Swing / .NET.
Все отлично работало для небольшого числа Испускателей. С ростом системы пришла проблема перекрытия имен событий между разными Испускателями. Подписчик выполнял один и тот же метод «наЧ», даже если «Ч» исходило от разных Испускателей. Затем был более привычный для JS, EventEmitter, как в jQuery / NodeJS. Не буду особо затягивать…
IP АТС в облаке своими руками за 10 минут
2014-02-17 в 19:09, admin, рубрики: cloud platform, diy или сделай сам, ip-телефония, javascript, sip, voip, voximplant, разработка, метки: cloud platform, ip-pbx, javascript, sip, voip, voximplant
Многие из читателей Хабра знакомы с современными IP АТС в облаке, такими как Манго, Oktell, Октолайн и другими. Все они предлагают различные функции и тарифные планы, чтобы удовлетворить самых разных клиентов и соответствовать их требованиям, но всегда есть ряд тех кто все равно выбирает Asterisk, так как хочется иметь возможности по кастомизации и интеграции, которые кроме как Asterisk мало какая система способна предложить. В дополение к самому Asteriskу еще потребуется человек, который будет способен все настроить и его поддерживать, отдельное подключение к оператору связи по SIP или через VoIP-шлюз и так далее. Когда мы начали создавать свою облачную платформу для разработки комуникационных приложений VoxImplant, то, конечно же, знали, что одним из популярных сценариев ее использования будет IP АТС, поэтому реализовали весь необходимый для этого функционал. В отличие от случая с Asterisk человеку, который решит сделать свою IP АТС на базе VoxImplant, понадобится лишь знание Javascript, ознакомление с этой статьей и свободных 10-15 минут, чтобы получить на выходе первую рабочую версию АТС, которую потом в дальнейшем можно будет интегрировать со своими сервисами и кастомизировать в соответствии со своими требованиями. Подробнее об этом код катом.
Читать полностью »
JavaScript: цикличные таймеры с автокоррекцией
2014-02-17 в 13:19, admin, рубрики: javascript, Веб-разработка, метки: javascript 
В посте в повествовательной и не очень манере рассказывается о различных реализациях «точных» таймеров на JS. Материал рассчитан на новичков… Добро пожаловать под кат.Читать полностью »

Использование комментариев для хранения статических данных в Javascript
2014-02-18 в 9:54, admin, рубрики: comments, javascript, комментарии, ненормальное программирование, метки: comments, javascript, комментарииИногда создаваемый компонент связан с большим количеством статических данных. Единственный «нормальный» способ хранить эти данные в javascript — это строки. Но хранить в строках многострочные данные неудобно, т.к. каждая строка требует дополнительного форматирования. Кроме того приходится следить за экранированием символов.
Читать полностью »