Как стать автором
Обновить
281.16

JavaScript *

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

Сначала показывать
Период
Уровень сложности

Reinforced.Typings — больше деталей

Время на прочтение17 мин
Количество просмотров9.1K
И снова здравствуйте.
Кто о чем, а я снова о Reinforced.Typings — своей библиотеке для генерации TypeScript-ового glue-кода из C#-сборок, краткое введение в которую я сделал в предыдущем посте. После чего немедленно получил ряд вопросов и комментариев (не только на Хабрахабре, к слову — многие из заинтересовавшихся просто на нем не зарегистрированы). За это, конечно, всем огромное спасибо, но исходя из проанализированной информации, я понял что одного краткого поста не достаточно, чтобы описать как и что реализуется. Получается что люди задают вопросы «а вот это вот поддерживается?» и каждому приходится объяснять раз за разом, одно и то же. Так что в этой статье я сделаю небольшой cheatsheet по атрибутам, fluent-конфигурации и расскажу про дополнительные возможности. В общем, милости просим. Осторожно, лонгрид и справочная информация!
Читать дальше →

Секция о клиентском программировании на HighLoad++

Время на прочтение1 мин
Количество просмотров18K

Не знаю, как вы, но я застал время, когда фронтенда еще не было. Большинство макетов программисты могли сверстать самостоятельно, ну что там сложного:
Читать дальше →

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

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


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

Обзор релиз-кандидата React v0.14

Время на прочтение9 мин
Количество просмотров22K
Мы рады представить вам наш первый релиз-кандидат версии React 0.14! Мы опубликовали в июле анонс предстоящих изменениях, но сейчас мы еще больше стабилизировали релиз и нам бы хотелось, чтобы вы попробовали его до того, как мы выпустим финальную версию.

Сообщите нам, если у вас возникли любые проблемы, создав задачу в нашем GitHub репозитории

Подробности

Webix + databoom = быстрое прототипирование приложений. 
Часть 2

Время на прочтение1 мин
Количество просмотров5.4K
Привет Хабр! Мы продолжаем рассказывать, как Webix и databoom могут использоваться для быстрой разработки прототипов приложений. В предыдущем скринкасте мы показали, как Webix datagrid работает с удаленными данными на сервере databoom.

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

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



Спасибо за внимание, готовы ответить на ваши вопросы в комментариях.
Исходный код рассмотренного примера: codepen.io/vladislav2/pen/KpYpJw?editors=001

Разработка на ES6 для браузеров

Время на прочтение2 мин
Количество просмотров23K
Доброго времени суток.



Поддержка нового стандарта EcmaScript 6 в браузерах все ближе и ближе, и тем кому не терпится начать разрабатывать с использованием новых возможностей ES6 предлагаю взглянуть на шаблонный проект для этой цели.

Представляю вашему вниманию github.com/DavidKlassen/es6-browser-boilerplate.

В основу шаблона лег github.com/babel/babel-library-boilerplate, но gulpfile.js был основательно почищен и упрощен. Многие зависимости я убрал и оставил возможности, которые необходимы для разработки приложений для браузеров.

Основные цели, которые я преследовал:


  • Шаблон должен быть хорошей стартовой точкой для разработки SPA и third party SDK.
  • Минималистичность и расширяемость.
  • Весь код, то есть и само приложение и тесты можно писать на ES6.

А теперь подробнее

Библиотека, облегчающая разработку форм на сайтах

Время на прочтение7 мин
Количество просмотров30K
Привет, Хабр!

Хочу поделиться с общественностью своей небольшой (всего 6 Кбайт) js-библиотекой, которая сильно облегчает мне работу с формами при разработке сайтов, и позволяет сократить написание кода.
Читать дальше →

Frontend Dev Conf'15 прошла 18 апреля в Минске

Время на прочтение2 мин
Количество просмотров6K
18 апреля Frontend Dev Conf в третий раз собрала frontend и UI-специалистов. Участниками стали более 300 разработчиков. Мероприятие прошло в дружелюбной атмосфере, приятных кулуарных разговорах и жарких дискуссиях с докладчиками.

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

Рисование эллипса под произвольным углом в canvas на JavaScript

Время на прочтение4 мин
Количество просмотров25K
В процессе разработки одного приложения столкнулся с необходимостью рисования эллипсов под произвольным углом в canvas на JavaScript. Пользоваться какими-либо фреймворками в столь простом проекте не хотелось, так что я отправился на поиски статьи-мануала на эту тему. Поиски не увенчались успехом, так что пришлось разбираться с задачей самостоятельно, и я решил поделиться с вами полученным опытом.

Формализуем задачу. Нам требуется функция drawEllipse(coords, sizes, vector), где:

  • coords — координаты центра эллипса — массив [x, y]
  • sizes — длины большой и малой полуосей эллипса — массив [a, b]
  • vector — вектор [x, y] наклона эллипса

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

Переписываем Require.js с использованием Promise. Часть 1

Время на прочтение8 мин
Количество просмотров9.2K
Чтобы не иметь проблем с зависимостями и модулями при большом количестве браузерного javascript, обычно используют require.js. Также многие знают, что это всего лишь один из многих загрузчиков стандарта AMD, и у него есть альтернативы. Но мало кто знает, как они устроены внутри. На самом деле, написать подобный инструмент не сложно, и в этой статье мы шаг за шагом напишем свою версию загрузчика AMD. Заодно разберемся с Promise, который недавно появился в браузерах и поможет нам справиться с асинхронными операциями.

Основой require.js, является функция require(dependencies, callback). Первым аргументом передаем список модулей для загрузки, а вторым – функцию, которую вызовут по окончании загрузки, с модулями в аргументах. Используя Promise написать её совсем несложно:

function require(deps, factory) {
  return Promise.all(deps.map(function(dependency) {
    if(!modules[dependency]) {
      modules[dependency] = loadScript(dependency);
    }
    return modules[dependency];
  }).then(function(modules) {
    return factory.apply(null, modules);
  });
}


Конечно, это еще не всё, но основа есть. Поэтому продолжим.
Читать дальше →

Как распутывать лапшу, не впадая в депрессию

Время на прочтение4 мин
Количество просмотров19K
Эта статья не про ваши сладкие интерфейсы на реакте, ангуляре или что вы там используете? Это статья про те ситуации, когда у вас есть кучка jQuery лапши. Нет, пусть это будут горы jQuery лапши, завернутой во вьюшки бэкбона.

В статье используется библиотека Backbone.View.Elements

Проблема первая: маловыразительные селекторы


Все мы видели лапшу, все мы знаем: лапша в JSе — наверно и в верстке не все хорошо. А раз все так, то код, скорее всего, кишит непонятными манипуляциями с домом. Читать такой код сложно, ведь надо, не упуская мысли автора о том, что здесь вообще происходит, держать в уме кучку невнятных названий для элементов. Итак, давайте придадим коду немножко выразительности:
_selectors: function () {
    return {
        elemName: '.block__elem-name'
    };
}
Сложим все селекторы в одном месте и дадим понятное название элементам, для выбора которых они нужны. Выбирать мы их, кстати, будем вот так:
this._elem('elemName');
вместо
this.$('.block__elem-name');

Неплохо? Поехали дальше..

Aurelia — новый современный JS-фреймворк

Время на прочтение1 мин
Количество просмотров38K
Сегодня Rob Eisenberg представил свой JavaScript-фреймворк.

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

Возможно, первая игра на Dart + Box2D

Время на прочтение4 мин
Количество просмотров13K
На Хабре не слишком много статей, посвященных языку программирования Dart, зато полным полно статей о недоделанных или с трудом доделанных играх, а также о том, как из первых сделать вторые. Данная статья будет смесью этих двух тем.

Дело обстояло так: мы с моим старым другом уже не первый год занимаемся разработкой. Игра, о которой пойдет речь в статье, уже далеко не первая, которую мы пытались сделать, но первая, с которой это удалось. После почти десятка неудавшихся попыток сделать игру мы наконец-то смогли объективно оценить свои силы и решили сделать головоломку. Жанр игр сам по себе несложный, но то, что мы задумали, было куда сложнее и не похоже ни на одну из игр, представленных в каталогах ВК и ФБ в этом жанре. Для того, чтобы совсем не осталось шансов закончить игру, решили использовать те технологии, которые никогда в глаза не видели — Dart + Box2d.
Читать дальше →

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

Закон Фиттса или как его использовать

Время на прочтение3 мин
Количество просмотров31K
Здравствуйте, хабровчане!

На сегодняшний день в веб-проектировании такое понятие, как Usability, является главенствующим. Существует множество подходов увеличения эффективности взаимодействия пользователя с меню. В этой публикации я приведу пример работы с паркетным меню, но в более упрощенном стиле, не похожем на меню Windows 8.

Для начала приведем формулировку закона Фиттса:
— общий закон, касающийся сенсорно-моторных процессов, связывающий время движения с точностью движения и с расстоянием перемещения: чем дальше или точнее выполняется движение, тем больше коррекции необходимо для его выполнения, и соответственно, больше времени требуется для внесения этой коррекции.

Формула:
T = a + b * log ( D / W + 1 ),

где T — время работы пользователя с меню в (мс), a и b — коэффициенты навыков и умений работы пользователя с тем или иным устройством, D — расстояние от одного до другого пункта меню, W — ширина пункта меню при движении к нему от другого пункта меню.

Для большего понимания представим расчетную схему:


Рисунок — Расчетная схема закона Фиттса.

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

Рассчитаем среднее время для паркетного меню с параметрами: p1=120 px, p2=160 px, d=10 px, n=6, где n – количество пунктов меню.
Получим таблицу, в которой указаны параметры Wi, Di, Ti.
Читать дальше →

Polymer: транскрипт видео с Google I\O

Время на прочтение2 мин
Количество просмотров14K
Polymer — это специальная библиотека для создания и использования веб-компонентов, а веб-компонент можно определить, как выделенный и независимых HTML код, включающий шаблоны, стили и сопутствующую js-логику. Кстати, недавно на Хабре была интересная статья Веб-компоненты в реализации Polymer от Google о том, что же такое Polymer и чем он может быть полезен.
image
На самом деле, задача Polymer не только упростить создание сайтов, Polymer должен помочь создавать веб-приложения, способные без дополнительного вмешательства функционировать на различных устройствах: от десктопов и мобильных платформ до телевизоров. Polymer можно назвать воплощением Material Design'а для веба.

И специально для тех, кто интересуется будущим веб и вообще приложений (да-да, эти миры очень тесно связаны! И, если вдуматься, то Polymer связывает их еще больше) мы подготовили профессиональный транскрипт видео докладов с Google I\O:

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

WinJS + универсальные приложения. Изучаем ListView

Время на прочтение9 мин
Количество просмотров9.5K


В предыдущей статье я рассказала о том, как создавать галерею изображений при помощи элемента управления FlipView. Сегодня мы рассмотрим элемент управления ListView, который позволяет не только отображать различные данные в виде списка, но и работать с ними – группировать, перетаскивать и переупорядочивать.
Читать дальше →

Атом — реализация на TypeScript

Время на прочтение13 мин
Количество просмотров20K
Здравствуйте, меня зовут Дмитрий Карловский и я… профессиональный велосипедист. За свою жизнь я перепробовал множество железных коней, но в конечном счёте остановился на самодельном. Не то чтобы мне очень нравилось работать напильником, тратя кучу свободного времени на изобретение колеса, но конечный результат, где каждая кочка не отдаётся болью в нижней половине туловища, того стоит. А теперь, когда вы знаете, что я затеял всё это не просто так, а чтобы сделать мир лучше, позвольте представить вам TypeScript/JavaScript модуль $jin.atom.

Краткое содержание предыдущей серии: простейшее приложение достигло критического уровня сложности, и, чтобы совладать с оной, была введена абстракция «атом», которая вобрала в себя всю рутину, позволив разработчику сконцентрироваться на описании инвариантов в функциональном стиле, не теряя связи с объектно ориентированной платформой. Вся теория и картинки там. Тут же будет куча практики, примеров кода и дампов консоли.
Читать дальше →

Pooling соединений к базе данных на node.js

Время на прочтение7 мин
Количество просмотров12K
В этой статье я опишу две абстракции-классы, написанные средствами nodejs, которые предоставляют функционал распределения запросов по открытым каналам (tcp-socket). При этом учитывается общая загруженность системы и, если каналов не хватает, открываются новые, по мере уменьшения общего количества запросов — «лишние» каналы закрываются.

Этот клиент можно использовать для распределения запросов по каналам, которые представляют собой по сути net.Socket. Для этого нужно внести изменения в метод по открытию и закрытию канала, добавлению запроса в канал.

В примере, который я опишу, используется библиотека pg, предоставляющая функционал по открытию сокетов к серверу с базой данных. При этом дефолтовое управление пулом коннектов, предоставляемое библиотекой, никак не используется.
Читать дальше →

Видео докладов с FrontTalks

Время на прочтение2 мин
Количество просмотров9.2K
19 сентября в Екатеринбурге прошла конференция сообщества фронтенд-разработчиков.

Ниже представлены видео-записи докладов.

Как сделать Инстаграм в браузере (Дмитрий Дудин, xbSoftware)



  • достоинства и недостатки Canvas, WebGl, SVG и CSS-фильтров и шейдеров;
  • неизведанный мир SVG-фильтров, его продуманные до мелочей устои, синтаксис и правила;
  • возможности обработки изображений — от простых чёрно-белых картинок до нелинейных искажений и градиентных карт.

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

Pixi-editor — простая рисовалка на pixi.js

Время на прочтение1 мин
Количество просмотров15K
Занимаясь одним большим проектом, добавил небольшую функциональность — выделение «маркером». Затем выделил эту часть в Pixi-editor. И теперь Pixi-editor — это рисовалка на основе pixi.js, и как следствие использует для рисования в браузере. Довел до примерного функционала рисовалки граффити Вконтакте.

Кому любопытно: демо, гитхаб.
Далее скриншот и пара комментариев.
Читать дальше →