Обновить
256K+

JavaScript *

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

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

Изоморфное Приложение с React и Redux

Время на прочтение15 мин
Охват и читатели99K
Итак, я знаю что ты любишь Todo списки, то есть, что тебе очень нравится писать Todo списки, поэтому мне хочется, чтобы ты создал один из них, используя новый, восхитительный и питательный («nutritious» прим. пер.) Flux фреймворк, Redux! Я желаю тебе только лучшего.

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

  • Цельнозерновой рендеринг на сервере
  • Расширенный роутинг, богатый Omega-3
  • Маслянистая асинхронная загрузка данных
  • Гладкое функциональное послевкусие


Если это похоже на то, чего ты хочешь в этой жизни, вперед под кат, если нет, то не заморачивайся.
Читать дальше →

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

Время на прочтение1 мин
Охват и читатели11K
Привет Хабр! В этом скринкасте мы рассказываем, как Webix и databoom могут использоваться для быстрой разработки прототипов приложений. Webix – это набор JavaScript компонентов для создания пользовательского интерфейса. Databoom – это облачный backend основанный на графовой базе данных. Вместе они дают кумулятивный эффект. С помощью Webix вы можете написать frontend в несколько строчек кода, а databoom даёт готовый и очень лёгкий в использовании backend. Как говорится, лучше один раз увидеть:



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

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №171 (3 — 10 августа 2015)

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


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

Введение в JavaScript итераторы на ES6

Время на прочтение4 мин
Охват и читатели34K
В EcmaScript 2015 (также известном как ES6) представлена совершенно новая концепция итераторов, которая позволяет задать последовательности (ограниченные и другие) на уровне языка.

Давайте поговорим об этом детальнее. Все мы хорошо знакомы с оператором цикла for, а многие даже знают его менее популярного брата for-in. Последний можно использовать, чтобы помочь нам объяснить базовые принципы работы с итераторами.
for (var key in table) {
  console.log(key + ' = ' + table[key]);
}

С оператором цикла for-in есть много проблем, но самая большая, пожалуй, состоит в том, что он не дает никаких гарантий последовательности. Попытаемся решить эту проблему с помощью итераторов. Больше информации под катом!
Читать дальше →

Теги в социальных сетях и синтетические (флективные) языки

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

I. В чём проблема


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

Например, поиск с учётом морфологии в английских и русских текстах требует разного уровня сложности. Разветвлённость русского словоизменения уже давно стала предметом расхожих шуток о мучениях иностранцев, изучающих русскую грамматику со всеми нормами и исключениями.

Один из примеров того, как технология натыкается на разницу языков, являют теги в английских и русских блогах и социальных сетях. Пока теги выделяются в отдельный блок (как это реализовано на Хабрахабре или в ЖЖ), проблем нет: в обоих языках используются начальные формы слов, иногда множественное число (и тут даже английский язык являет остатки былого синтетизма). Но как только теги попадают в текст, разница обостряется. И порой кажется, что, например, хештеги Твиттера становятся мощным фактором усиливающегося аналитизма в русском языке. То и дело натыкаешься на фразы вроде:

Мы с #муж в ресторане.

С завтрашнего дня в #Москва.

Вернулись с #море.

Возникает очень странное чувство, некоторое языковое головокружение и раздвоение.
Читать дальше →

Обновление React компонентов с сохранением состояния в режиме реального времени для Browserify

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


Всем доброго времени суток!
Давайте немного поговорим о DX (Developer Experience) или «Опыте разработки», а если конкретнее — об обновлении кода в режиме реального времени с сохранением состояния системы. Если тема для вас в новинку, то перед прочтением советую ознакомиться со следующими видео:

Ряд видео с обновлением кода в реальном времени без перезагрузки страницы




Введение: Как это работает?


Прежде всего стоит понимать, что реализация подобной функциональности подразумевает под собой решение ряда задач:
— Отслеживание изменений файлов
— Вычисление патча на основании изменений файлов
— Транспортировка патча на клиент (в браузер, например)
— Обработка и применение патча к существующему коду
Но обо всём по порядку.
Читать дальше →

Тонкости ES6: Коллекции (часть 2)

Время на прочтение6 мин
Охват и читатели24K
От переводчика: это вторая часть перевода статьи про коллекции в EcmaScript 6. Первую часть можно прочитать тут. По разным причинам перевод второй части затянулся на достаточно долгий срок.

Map


Map (ассоциативный массив) — это коллекция пар ключ-значение (key-value). Вот что умеет Map:
  • new Map возвращает новый пустой ассоциативный массив.
  • new Map(pairs) создает новый ассоциативный массив и наполняет его данными из существующей коллекции пар [key, value]. Эта коллекция может быть другим Map объектом, массивом из двухэлементных массивов, генератором который возвращает двухэлементые массивы, и т.д.
  • map.size возвращает количество элементов в ассоциативном массиве.

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

Алгоритм упорядочения логических томов в среде ОС Windows, часть 2

Время на прочтение19 мин
Охват и читатели8.7K
Алгоритм упорядочения логических томов в среде ОС Windows, часть 2

В первой части публикации были изложены принципы реализации алгоритма, приведены состязательные результаты последовательного исполнения кода-прототипа и diskpart.exe.
В этой части приводится краткое описание каждого из четырех шагов алгоритма, демонстрируется строгое следование принципам, провозглашенным в первой части. Приводятся используемые источники инфорации.

Как алгоритм хранит данные.

В процессе выполнения четырех шагов алгоритма, создаются три коллекции, содержащие объекты представляющие Устройства хранения данных, DevicesCollection, создается самой первой, на шаге 1 и постоянно используется на всех последующих шагах для обращения к родительскому объекту. На шаге 2 создается StorageVolumesCollection, а на шаге 3, LogicalVolumesCollection. Все коллекции организованы по единому принципу: все хранимые объекты проиндексированы и для того, чтобы обратиться непосредственно к хранимому объекту, надо просто обратиться к XXXXXCollection[ index ], где XXXXX: { Devices, StorageVolumes, LogicalVolumes }, а индекс – любое целое число в диапазоне [0, XXXXXCollection.Count]. Свойство Count содержит количество объектов соответствующего типа в коллекции.

Строки описания устройств, хранимые в бинарном блобе Data, не содержат DeviceGUID не только для DVD-ROM, но и для Removables. Упомянутый бинарный блоб содержит детальные характеристики логического тома и адресуется Registry путем:
HKU\SID\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\CPC\Volume\GUID, где GUID это VolumeGUID, SID – Security Identifier текущего пользователя. В связи с этим коллекция DevicesCollection и LogicalVolumesCollection содержат “ключи прямого доступа” как в виде коротких 8-ми символьных DeviceGUID.F1, так и длинных, непредсказуемой длины для DVD-ROM и Removables. Ключи прямого доступа возвращают индекс объекта, соответствующего указанному ключу. Таким образом используя длинный ключ, PnPDeviceID для обращения к DevicesCollection, можно получить индекс родительского устройства. Это индекс немедленно присваивается в качестве значения свойства ParentIndex тому объекту типа StorageVolume или LogicalVolume, который надо разместить в собственной коллекции.

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

Создание игры на Blend4Web. Путь программиста

Время на прочтение8 мин
Охват и читатели13K
В своей первой статье на Хабре, посвященной разработке браузерной игры, я показал основные этапы создания базовой сцены для Blend4Web. Пара примитивов, несколько текстур плюс встроенные возможности платформы позволили с легкостью воплотить задуманную идею — воду с рефракцией и каустикой.

Можно сколько угодно любоваться переливами на морском дне. Пришло время реальной работы. Прежде всего нужно разобраться с программированием и сделать первые шаги в написании кода.
Читать дальше →

Алгоритм упорядочения логических томов в среде ОС Windows

Время на прочтение9 мин
Охват и читатели7.7K
Код-прототип на JavaScript уверенно обгоняет по скорости базовую системную утилиту DISKPART.EXE при решении задачи упорядочения логических томов.

Описан алгоритм, реализация которого в прототип-коде на JavaScript уверенно опережает по времени решения задачи опорную системную утилиту DISKPART.EXE. Описаны принципы на которых базируется алгоритм. Дано возможное объяснение, но не доказательство, тому, почему DISKPART.EXE решает задачу медленней, чем JavaScript код. Приводятся состязательные результаты в среде Windows различных изданий, включая Windows 10 RTM TH1. Описывается как изменения, вносимые в различных изданиях Windows 10 вынуждали несколько раз переделывать алгоритм с целью повышения его надежности, хотя и ценой некоторой потери скорости.
Читать дальше →

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №170 (26 июля — 2 августа 2015)

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


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

JavaScript — шаблоны наследования

Время на прочтение7 мин
Охват и читатели59K
Примечание переводчика: Тема наследования в JavaScript является одной из самых тяжелых для новичков. С добавлением нового синтаксиса с ключевым словом class, понимание наследования явно не стало проще, хотя кардинально нового ничего не появилось. В данной статье не затрагиваются нюансы реализации прототипного наследования в JavaScript, поэтому если у читателя возникли вопросы, то рекомендую прочитать следующие статьи: Основы и заблуждения насчет JavaScript и Понимание ООП в JavaScript [Часть 1]

По всем замечаниям, связанным с переводом, обращайтесь в личку.

JavaScript является очень мощным языком. Настолько мощным, что в нем сосуществует множество различных способов проектирования и создания объектов. У каждого способа есть свои плюсы и минусы и я бы хотел помочь новичкам разобраться в этом. Это продолжение моего предыдущего поста, Хватит «классифицировать» JavaScript. Я получил много вопросов и комментариев с просьбами привести примеры, и для именно этой цели я решил написать эту статью.
Читать дальше →

Xonix на Javascript с картинками

Время на прочтение27 мин
Охват и читатели19K
Xonix — популярная игра времен DOS, клон видеоигры Qix.

На Javascript Xonix уже был портирован несколько раз. Лучшая и наиболее приближенная к оригиналу из существующих реализаций на сегодняшний день, пожалуй, вот эта. Ее я поначалу пытался приспособить для своей реализации/модификации… Но, к сожалению, код даже после деобфускации так и не стал понятным (во всяком случае для меня). К тому же, насколько я смог понять, код там местами не совсем эффективен, либо вовсе устаревший. Так что пришлось все писать с нуля.

В результате у меня получился такой вот «свой» Xonix, с картинками и ответами.

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

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

Angular.js persistent storage

Время на прочтение2 мин
Охват и читатели5.6K
Предположим мы хотим добавить в классическое todo приложение возможность сохранения данных.

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

Node-RED нод для конвертации локаций в адреса what3words

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


Пакет node-red-node-what3words доступен для установки с помощью npm. Он предназначен для конвертации геопозиции в адрес what3words и наоборот. Если у вас уже есть ключ для what3words API, можно приступать к установке.
Читать дальше →

Load Balancing: Firebase + RabbitMQ

Время на прочтение7 мин
Охват и читатели10K
Современные хостинг-системы (Heroku, Amazon etc.) предоставляют широкий выбор устройств и настроек для проектирования архитектуры балансировки нагрузки на сервер. Вы можете настроить как более простой Round Robin-алгоритм для последовательной разгрузки сервера, так и более сложную систему, учитывающую количество instanc'ов, текущую нагрузку, среду окружения и другие факторы.

Сегодня мы поговорим о ручном способе регулирования нагрузки (одним из). Сразу скажу, что данный способ не был протестирован в жестких условиях, но достаточно хорошо показал себя в pre-production.

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

Встраиваемая JavaScript база данных с прицелом на API совместимость с MongoDB

Время на прочтение3 мин
Охват и читатели14K
Как-то давно мы задумали написать один проект для Node.js которому очень нужно было работать с NoSQL базой данных, но при этом не иметь никаких зависимостей от внешних приложений. Как это обычно бывает, все закончилось разработкой новой библиотеки.

Начав разработку два года назад, желание использовать встроенную базу данных для web приложения казалось весьма странным. В самом деле, зачем? Сейчас, когда появился проект node-webkit, объяснить это гораздо легче. Используя встроенную базу данных возможно разработать web приложение двойного назначения. Такое приложение сможет работать как в классической схеме клиент-сервер, так и с использованием node-webkit как обычное загружаемое приложение. Важной особенностью и в том и другом случае является то, что код базы данных является частью вашего приложения, что избавляет от многих проблем совместимости и установки.
Читать дальше →

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

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


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

Отображаем данные из Serial в Chrome Application

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


Здравствуй, Хабр!

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

Краткая предыстория. Много раз мне хотелось, чтобы компьютер и подключенная к нему Arduino работали, как единая система, в которой микроконтроллер был бы посредником для общения с датчиками и исполнительными устройствами, а компьютер — большой удобной консолью.

Чтобы это произошло, на компьютере нужно либо по хакерски сидеть в консольном терминале, либо писать какую-нибудь небольшую GUI’шку. Даже самая примитивная GUI’шка требует каких-то непропорциональных усилий для своего создания. Нужно выбрать framework, реализовать кучу побочной GUI-логики, скомпилировать под всевозможные платформы, разобраться с зависимостями, запаковать .exe, проверить на маке и венде и т.д.

Давно слышал, что API для приложений Google Chrome даёт доступ к Serial. Захотел попробовать и заодно освоить создание Chrome-приложений как таковое. Получился Serial Projector — замена штатному Serial Monitor для Arduino IDE.

Суть проста до безобразия: приложение на весь экран отображает последнюю текстовую строку, пришедшую через последовательный порт. Это позволяет, например, выводить показания устройства крупно и няшно. Может оказаться полезным для всяких выставок, презентаций, инсталляций.

Подробности исходного кода и демонстрация работы — под катом.
Читать дальше →

Путь разработчика (Часть 0х01)

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

0х01. Работа не мечта


// Code is Poetry
Джон Касти как-то сказал: «Физика — это частный случай биологии», я считаю — программирование частным случаем поэзии. Здесь так же важно соблюдать структуру, как соблюдается рифма, знать своего пользователя как знать своего читателя, быть одновременно переводчиком и историком, чтобы кто-то, придя из другой сферы смог прочесть написанное тобой. Но сам программист — сочетание характеров писателя, изобретателя и испытателя. Код соединяет несоединяемое: творчество тысяч людей сливаются в один проект, словно десятки художников, со свойственными только им стилями, красками и предпочтениями, берутся за рисование одного полотна. Одно ясно: унификация не удел программиста.
Читать дальше →