Обновить
256K+

JavaScript *

Прототипно-ориентированный язык программирования

244,1
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Codecha — программистская капча, или как не надо проектировать API

Время на прочтение17 мин
Охват и читатели7.2K
На своем сайте я использую Codecha — программистскую капчу. Это уникальная капча, для решения которой требуется написать тело функции, решающей поставленную задачу, на одном из выбранных языков программирования.

КДПВ —  виджет этой самой капчи

Она не обеспечивает столь же надежной защиты от ботов, как, например, Google reCAPTCHA (набор заданий ограничен и их довольно быстро можно прорешать, а затем отдавать готовые ответы), но зато помогает против не-программистов (для определенной категории форумов толпы студентов, просящих выполнить их лабораторную работу — настоящая проблема, хуже спам-ботов). Но заметка не об этом.

Проблема, с которой я столкнулся в ходе использования Codecha, — совершенно неудобный API как самого виджета капчи, так и сервера.
Читать дальше →

Angular Light для jQuery/JS разработчиков

Время на прочтение3 мин
Охват и читатели18K


Я на Тостере периодический вижу вопросы типа «как скрыть блок по клику» или «как раскрасить по условию», поэтому я хочу вам показать 4 «приема» которые могут улучшить ваш jQuery-код и скорость разработки.

Начальный пример


Примеры к описанию ниже: jQuery пример и Angular Light пример
Этот пример состоит из 2-х «моментов»: 1. Кликом выбрать «панель», 2. Отобразить выбранную «панель».
Читать дальше →

Все, что вы хотели знать о моделях и коллекциях в Titanium

Время на прочтение7 мин
Охват и читатели3.7K
Но по какой-то причине боялись спросить.

Модели — достаточно важная часть приложения, потому что без данных никуда.

В этой статье я постараюсь максимально подробно осветить все аспекты использования моделей в MVC фреймворке для разработки мобильных приложений Appcelerator Titanium.

Если вы еще не пробовали связываться с моделями, то, надеюсь, эта статья сэкономит вам пару километров нервов.
Читать дальше →

Создание десктопного приложения с помощью Electron и веб-технологий

Время на прочтение4 мин
Охват и читатели68K
Знакомство с Electron

Официальная страница проекта Electron.

Изначально Electron был разработан для редактора Atom компанией GitHub.

Electron (ранее известный как Atom Shell) позволяет нам создавать кроссплатформенные приложения, используя HTML, CSS и JavaScript. Что является большим плюсом для команд, которые занимаются веб-разработкой. Отпадает надобность искать новых разработчиков для создания десктопных версий уже существующих проектов.

Electron являет собой прекомпилированый бинарник и библиотеки, нужные для работы приложения и доступа к native API операционной системы. Он включает в себя Node.js, направленный на работу в десктопной среде, и минимальную версию браузера Chromium, контролируемого JavaScript.
Читать дальше →

Релиз typescript 1.7

Время на прочтение2 мин
Охват и читатели12K
Приветствую, коллеги! Вчера Microsoft напрягся и выкатил релиз следующей версии typescript, типизированной надстройки над javascript. В новой версии не только возведение в степень и раздельная конфигурация целей, но и первые наработки по async/await из стандарта ES7. Подробнее под катом.
Читать дальше →

Приглашаем на Web Standards Day в Москве, 13 декабря

Время на прочтение1 мин
Охват и читатели2.7K
Всем привет!

Web Standards Day, 13 декабря, Москва
Иконки
Иконка кремля — Kremlin by parkjisun from the Noun Project
Логотипы WSD — github.com/web-standards-ru

Многие из вас, наверняка, в курсе активностей сообщества "Веб-стандарты" и уже знают, что конференция Web Standards Day после двухлетнего перерыва снова возвращается в Москву и состоится уже менее чем через две недели — 13 декабря.

Мы же спешим рассказать о двух вещах:
  1. Регистрация очень скоро закроется. На самом деле, если вы поторопитесь, то уже сегодня.
  2. На сайте опубликована программа с девятью докладами и одним мастер-классом от экспертов и разработчиков из Avito, EPAM Systems, Opera, Acronis, Hackraft, Microsoft и Яндекса.

Читать дальше →

AllcountJS: Делаем систему для места продажи (POS)

Время на прочтение12 мин
Охват и читатели9.2K
Продолжаем знакомство с AllcountJS — фреймворком для быстрой разработки приложений на платформе NodeJS. В этой статье мы рассмотрим пример реализации кастомного интерфейса с использованием AngualrJS и jade, а также некоторые возможности конфигурирования, о которых мы ещё не упоминали.

POS (Point Of Sale) — в прямом смысле точка (место) продажи, но обычно этот термин обозначает рабочее место кассира вместе с торговым оборудованием. Такие терминалы находятся почти в каждом месте где нам что-нибудь продают. И сейчас мы создадим простое приложение, которое позволит вести список товаров с остатками и создавать записи о продажах.

POS main UI

Как обычно, на результат можно посмотреть в демо-галерее.
Читать дальше →

JS-DOS API: запускаем DOS в браузере

Время на прочтение3 мин
Охват и читатели23K
Уже более 5 лет существует проект emscripten. За время существования проекта была проделана огромная работа. Удивить искушенного читателя стало гораздо сложнее. Мы уже видели DOOM, Dune 2, TTD, С&C и много чего ещё в браузере. Однако, запустить DOS программу в браузере по прежнему сложно: нужно не плохо разбираться в C/C++ и emscripten. Эксперименты с Dosbox вылились в проект em-dosbox, большинство DOS программ стали доступны для браузера. Что бы поставить точку, осталось лишь создать открытое API для запуска DOS программ в браузере.
Читать дальше →

Шесть вещей, которые вы должны знать о движении WordPress в сторону JavaScript

Время на прочтение2 мин
Охват и читатели13K
image

Если вы ещё не слышали об этом, WordPress анонсировал, что в данный момент они работают над секретным проектом под названием «Calypso», который будет полностью написанный на JavaScript. И мы все были просто ошарашены данной новостью! Серьёзно ли WordPress угробит поддержку PHP в пользу JavaScript?
Читать дальше →

Appcelerator Titanium SDK обновился до версии 5.1.0

Время на прочтение12 мин
Охват и читатели4.4K
Недавно Appcelerator SDK обновился до версии 5.1.0. Появилось много полезных фич.
Список изменений:
Читать дальше →

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №187 (23 — 29 ноября 2015)

Время на прочтение7 мин
Охват и читатели29K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости.


Читать дальше →

Как создать круглую Progress Button

Время на прочтение9 мин
Охват и читатели48K
Урок по реализации круглой кнопки загрузки (далее progress button) by Colin Garven. Будем использовать, описанную by Jake Archibald, технику анимации SVG линий для того, чтобы анимировать progress button и показать пользователю состояния «success and fail».

image
Читать дальше →

Управление состоянием и эффективный рендеринг в приложениях на React

Время на прочтение6 мин
Охват и читатели17K
Привет! Я хочу рассказать об очередной реализации Flux. А точнее о минимальной реализации, которую мы успешно используем в рабочих проектах. И о том, как мы пришли к этому. На самом деле многие так или иначе сами приходят к подобному решению. Описанное здесь решение является лишь вариацией ему подобных.

В Redradix мы уже около года разрабатываем веб-приложения на React и в течении этого времени у каждого из членов команды возникали идеи, которые мы постепенно выносили в свое, домашнее решение. Мы сразу же отказались от хранилищ в классическом Flux в пользу единого глобального состояния. Хранилища всего лишь выполняют роль сеттеров/геттеров в состояние приложения. Чем хорошо глобальное состояние? Одно состояние — это один конфиг всего приложения. Его без труда можно заменить другим, сохранить или передать по сети. Больше нету зависимостей между хранилищами.
Читать дальше →

Ближайшие события

Как заставить сайт работать в виде Web App (никому не интересный пример частного решения, к тому же плохо описанный)

Время на прочтение4 мин
Охват и читатели5K
Наверное, это — своего рода продолжение темы «Отличия в адаптации сайта и AJAX веб-приложения для iOS» и развитие идеи из моего комментария там.

Тема старая, но для многих до сих пор актуальная. В целом, внутри будет много частностей, поскольку целью не является придумать универсальное решение, а всего лишь надо заставить один конкретный сайт работать как Web App, не прибегая к большим модификациям. В общем, как обычно, кому интересно — под кат, остальные проходят мимо, наверное.
Читать дальше →

Разработка собственного решения: риски и ответственность

Время на прочтение11 мин
Охват и читатели15K
Привет, Хабр! В этой статье речь пойдет о том, как мы в компании Mail.Ru Group подходим к написанию кода; когда использовать готовые решения, а когда лучше писать самим; ну, а самое главное — какие шаги нужно сделать, чтобы ваша работа не оказалась безрезультатной и принесла пользу окружающим. Все эти нюансы будут рассмотрены на примере задачи создания нашей внутренней JSSDK, которая возникла из-за необходимости объединения кодовой базы двух проектов.


Иллюстрация Michael Parkes
Продолжить

PostCSS быстрый старт

Время на прочтение3 мин
Охват и читатели30K
В этом руководстве вы узнаете, как можно использовать PostCSS вместе с GULP, позволяя вам самим определять, какие плагины вы хотите использовать и, следовательно, включать в вашу экосистему.

Требования


Мы будем работать как уже было сказано выше с GULP, предполагается что у вас уже установлены:

  • Node.js
  • NPM
  • Git
Читать дальше →

Тестирование вёрстки на визуальные регрессии с помощью PhantomCSS

Время на прочтение9 мин
Охват и читатели26K
Работа с чужим кодом — одна из распространенных и сложных проблем, с которыми мне приходилось сталкиваться в своей работе. Почти в каждом случае предыдущий разработчик писал код не так, как бы мне этого хотелось.

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

Недавно наша команда получила код от нового клиента, и нам было поручено после небольшого рефакторинга быстро переходить к реализации нового функционала. Мы понимали, что могли бы улучшить код, перенеся клиентские стили на Sass, и это упростило бы нам поддержку в будущем.

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

Раньше я рассматривал такие изменения как большие риски. В конце концов, C в CSS это каскадирование, где порядок абсолютно важен. Реструктуризация нескольких стилей означает изменение порядка, что, естественно, приводит к большому риску что-то сломать.

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

На этот раз было решено построить визуально регрессионный набор тестов.
Читать дальше →

Blend4Web. Система событий

Время на прочтение9 мин
Охват и читатели6.2K
Создание интерактивного приложения немыслимо без обработки событий, будь-то опрос клавиатуры или работа таймера. Реализация этих важных действий зависит от платформы, языка программирования. В этой статье я хочу рассказать о некоторых особенностях использования событий для WebGL-движка Blend4Web. К сожалению, информации по этой теме совсем немного.


Читать дальше →

Пользовательские плагины в JavaScript играх

Время на прочтение6 мин
Охват и читатели12K
Wargaming сейчас разрабатывает тактическую карточную игру WoT: Generals. Веб-версия написана на JS, используются LibCanvas и AtomJS. Я принимал непосредственное участие в разработке и хочу рассказать про функционал, который мне кажется интересным и может быть полезным во всех веб-играх. А именно — о системе плагинов игры, которая вдохновлялась пакетными менеджерами в Linux и имеет следующие возможности:

— История изменений плагинов
— Автоматическое обновление плагина при обновлении версии игры
— Разработка плагинов на localhost
— Неограниченное количество веток, например, для нестабильных версий
— Зависимости (плагин А автоматически подключает плагин Б)
— Встроенная возможность делать паки (следствие предыдущего пункта)
— Легкое изменение любой части клиента игры
— Полный административный контроль авторов игры над всеми плагинами
— Поиск по базе плагинов
— При этом простая установка юзером и удобная работа для плагинописцев.
Читать дальше →

Прогулка с динозаврами: как я адаптировал веб-приложение под IE 7

Время на прочтение10 мин
Охват и читатели13K
image

Недавно я решил отправить свой проект, над которым работал в свободное время последние несколько лет, на конкурс в одну компанию. Я сел и стал думать, нет ли каких-то нюансов, которые я не учёл, и которые могут испортить впечатление и уменьшить шансы на успех. И первое, что мне пришло в голову — проект не работает под IE ниже 9 версии. То есть совсем, там стояла блокировка. После логина появлялось окошко с красивым предупреждением, что браузер не поддерживается, и пользователя опять перебрасывало на форму входа. Довольно изящно — но неприятно. Что, если у человека стоит Windows XP, а сторонних браузеров нет? Незадача.

И вот я решил потратить столько времени, сколько будет нужно, но при этом добиться стабильной безошибочной работы системы как минимум в IE 8. Я готов был убрать часть функций, если будет необходимо — но всё должно было выглядеть аккуратно и работать без сбоев. Предвкушая долгие и тяжёлые мучения (уже был несколько раз подобный опыт), я взялся за дело. Если вам интересно узнать, с какими сложностями я столкнулся, и какие изменения пришлось внести в разные компоненты — добро пожаловать под кат.
Читать дальше →