Pull to refresh
26
0
Акжан @akzhan

CTO, Release manager, Teamlead

Send message

Асинхронное программирование на JavaScript — Остаться в живых

Reading time14 min
Views35K
Программисты принимают некоторые особенности как должное — последовательное программирование, к примеру, при записи алгоритма, который делает один шаг только после другого.

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

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

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

Сообщество JavaScript в курсе этого, особенно сообщество Node.JS, так как Node.JS ставит акцент на асинхронном коде.
Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments22

Для разработчиков на PS3 доступен нормальный Web-браузер от EA

Reading time1 min
Views27K
Как известно, Web-браузер, встроенный в приставку Sony Playstation 3, безнадежно устарел, и не удовлетворяет требованиям современного рынка.

Пока компания Sony не делает ничего для изменения данной ситуации, но теперь у разработчиков приложений для Sony Playstation 3 появился выбор.

Компания EA выпустила в свет в рамках проекта Skate 3 новый продукт — EA WebKit, который собирается на платформах Win32, Win64, Playstation 3 и Xbox 360.

Подробности здесь.
Total votes 21: ↑18 and ↓3+15
Comments13

Node.JS — формируем результирующий документ, используя другие HTTP-источники

Reading time13 min
Views4.5K
Часто сервера на Node.JS используются как сервисы-агрегаторы, получающие динамические данные с других HTTP-источников и формирующие на основе этих данных агрегированный ответ.

Для обработки полученных данных удобно использовать внешние процессы, обрабатывающие исходный набор файлов (например, утилиты ImageMagick или ffmpeg).

Рассмотрим это на примере HTTP-сервера, выполняющего роль backend для сервера nginx, и формирующего CSS-спрайты для набора изображений.
Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments1

Node.JS — Основы асинхронного программирования, часть 1

Reading time3 min
Views6.4K
Сейчас, после выхода стабильной версии Node.JS 0.2.0, я решил начать цикл статей по программированию с его использованием.

Основная концепция Node.JS — любые операции ввода-вывода по умолчанию реализованы как асинхронные, после выполнения операции будет вызвана функция обратного вызова, первым параметром которой будет являться ошибка или null.

Скрываем асинхронную вложенность


Предположим, нам нужно создать каталог, включая всех его родителей. И только в случае, если его удалось создать, начать писать в этот каталог.

Для того, чтобы скрыть сложность работы с асинхронными операциями, вынесем работу по созданию каталога в отдельный асинхронный метод:
Читать дальше →
Total votes 42: ↑20 and ↓22-2
Comments17

Введение в Nitrode — выделенный HTTP-сервер

Reading time2 min
Views1.1K
Рад представить вам описание Nitrode.

Проблема:

Node.Js не включает в себя модуль FastCGI или аналогичные модули для интеграции приложений, в отличие от других HTTP-серверов, например, nginx.

Решение

Nitrode призван устранить этот пробел, предоставляя быстрый и универсальный HTTP-сервер, построенный на основе Node.JS. Он рассчитан на поддержку большинства основных возможностей nginx, но обладает дополнительным преимуществом, так как Nitrode написан на JavaScript и предоставляет API для существующих приложений, который позволяет осуществлять им полный контроль над сервером, не выходя из текущего процесса.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments7

Не строим с нуля. Теперь у Вас есть шаблон для верстки HTML5

Reading time2 min
Views17K
Любовь к HTML5 продолжает вдохновлять Поля Айриша. Во-первых, он подарил нам Modernizr, а сейчас он объединился с Divya Manian для создания шаблона HTML5, который использует передовые техники, чтобы Вы могли начать использовать его в своей практике.

Он, в сущности, является хорошей отправной точкой, состоящей из HTML и CSS, предлагающим также и структуру папок, которая работает. Но созданным с учётом многих лет передового опыта профессионалов в разработке клиентской части. Загляните в исходные тексты, чтобы почувствовать, что находится внутри. А если вы думаете, что этого слишком много, просто удалите лишнее.
Читать дальше →
Total votes 157: ↑146 and ↓11+135
Comments48

Пишем свой плагин для jQuery

Reading time3 min
Views7K
Сегодня утром я зашёл на Google Maps и с радостью увидел там слой «Пробки». Сразу же глаз зацепился за интересное интерфейсное решение для выбора времени, на которое будет показана ситуация с пробками.

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

Самое время вспомнить, как пишутся плагины под jQuery.
image
Читать дальше →
Total votes 68: ↑57 and ↓11+46
Comments35

Syn — библиотека синтетических событий, которая делает тестирование проще

Reading time2 min
Views1.3K
Команда Jupiter IT выпустила Syn, библиотеку, которая позволяет вам создавать синтетические события для использования при тестировании. Эта отдельная библиотека предназначена для оказания помощи в тестировании сложного поведения пользовательского интерфейса, имитируя действия пользователя, такие как печать с помощью клавиатуры, нажатие кнопок мыши и перетаскивание с её помощью.
Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments12

Движок V8 для .NET-приложений

Reading time1 min
Views2.7K
В репозитории Codeplex появился Javascript .NET, — проект интеграции движка Google V8 и предоставления его интерфейсов системе CLI.

Javascript .NET на лету компилирует код и выполняет скрипты прямо из .NET-приложений. Также он позволяет выполнять манипуляции с объектами CLI прямо из выполняемого кода Javascript.
Читать дальше →
Total votes 50: ↑30 and ↓20+10
Comments10

Немного о Chef 0.9

Reading time1 min
Views1K
20 июня вышел в свет Chef 0.9.0, и затем ещё несколько патчей, устраняющих ошибки в этом продукте. Фактически можно рекомендовать к использованию, начиная с версии 0.9.4.

Изменены протоколы работы клиентов и сервера, поэтому обновление с Chef 0.8 надо производить и на сервере, и на клиентских машинах. Сам процесс обновления тривиален (на сервере при условии установки из гемов — gem install chef chef-server chef-server-api chef-server-webui chef-solr ohai, плюс рестарт сервисов, плюс rake install, на клиенте просто gem i chef).

Основные изменения затронули механизм хранения «кулинарных книг», — теперь можно поддерживать одновременно несколько версий одной книги. Улучшена поддержка Windows-клиентов.
Читать дальше →
Total votes 9: ↑3 and ↓6-3
Comments4

Храните ваши клятвы; Отношения с Node

Reading time2 min
Views1.3K
Клятвы могут быть прекрасны. Алексис Селлир, сыскавший славу за разработку «LESS» (и «less.js»), начинает становиться звездой Open Source, выпустив в свет Vows, — каркас для разработки на Node.JS, управляемой асинхронным поведением.

image
Читать дальше →
Total votes 36: ↑20 and ↓16+4
Comments23

Сделано в CSS: Иконки iOS и другие…

Reading time3 min
Views2.8K
image

Нравится ли вам мем «посмотрите на меня, делающего что-то крутое на чистом CSS»? Это доставляет. С одной стороны, такие мемы показывают, насколько невероятные вещи могут создать люди, но с другой стороны… они напоминают, что нам нужны инструменты, чтобы сделать нашу жизнь проще. Но, по крайней мере, платформа уже здесь, и инструменты могут появиться позднее.

Льюис Харбо отметил свою покупку iPhone 4 созданием набора иконок iOS на чистом CSS. Теперь мы можем посмотреть на его работу, и автор рассказывает о идеях, лежащих за реализацией:
Читать дальше →
Total votes 66: ↑41 and ↓25+16
Comments46

HTML5 уже здесь (он пока просто не для настольных компьютеров)

Reading time3 min
Views1.1K
Когда кальмар чувствует угрозу, он выстреливает чернилами в воду, надеясь сбить с толку и дезориентировать хищников. Нечто подобное сейчас происходит и на арене Сети. Компании Adobe и Microsoft заявляют нам, что HTML5 придёт через 10 лет. Apple говорит нам, — «Нет, нет, он уже здесь, прямо сейчас, взгляните на наши великолепные демонстрации HTML5 (хм, скорее CSS3 + JavaScript)!».

Истина в том, что развивается раздвоение в популяции браузеров Сети. На рабочем столе Internet Explorer и Firefox занимают вместе более 80% рынка. В Internet Explorer поддержки семейства технологий HTML 5 практически не существует, а Firefox отстает в реализации CSS3. И, в любом случае, есть огромная база установленных IE 6, 7, 8 на рабочем столе — в частности, на предприятиях, — и ни один здравомыслящий разработчик приложений не будет разрабатывать настольные приложения для предприятий, которые не работают в, по крайней мере, IE7. Исключая инновационные компании, которые развертывают последние редакции Firefox, Chrome и Safari для своих сотрудников, HTML5-технологии здесь пока обречены на провал.

Но совсем другая история на мобильных устройствах. Жизненные циклы товаров намного быстрее (люди меняют свой телефон в среднем каждые 18 месяцев), и технологически таблетки, телефоны и сенсорные устройства практически живут на другой планете, когда дело касается их браузерных технологий. И это потому, что браузер, по умолчанию, на каждом устройстве, которые значимо на рынке, основан на Webkit.
Читать дальше →
Total votes 60: ↑54 and ↓6+48
Comments97

Замены для nginx (Web Sockets)

Reading time1 min
Views8.6K
В своё время nginx стал глотком свежего воздуха для Web-разработки.

В настоящее время, к сожалению, этот продукт тормозит развитие Web, так как является динозавром эпохи HTTP/1.0.

Если Вы используете современные возможности HTTP/1.1, или partial updates, или Web Sockets, нужна рабочая альтернатива.
Читать дальше →
Total votes 111: ↑68 and ↓43+25
Comments166

Node.JS: Пример HTTP-сервера в режиме prefork с использованием Web Workers

Reading time2 min
Views8.5K
Как обещал ранее, я публикую исходный код, демонстрирующий, как построить HTTP-сервер в режиме prefork, используя Web Workers и новый API net.Server.listenFD(). Я надеюсь, что этот код будет хорошим примером того, как легко нагрузить несколько ядер сервера, комбинируя пересылку файловых дескрипторов и Web Workers.

Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments28

Node.NET: Выполнение Node.JS на Windows через .NET

Reading time1 min
Views2.2K
Node планирует со временем поддерживать все операционные системы, совместимые с POSIX (включая Windows c MinGW), но в настоящее время он тестируется только на Linux, MacOS X и Solaris.

На встрече пользователей Node.JS в Пало-Альто кто-то спрашивал о работе Node под Windows, но ответ оказался не оптимистичным, — Вы можете заставить их работать вместе, и это обязательно произойдёт. Но сегодня? Непросто. Хотя это и не кажется громадной проблемой.

Однако, если Вам всё же интересно запускать приложения Node под Windows, и эта идея ваc вдохновляет:
C:\> node.exe server.js

… тогда Вы можете быть благодарны за то, что Дэн Ньюкоум создал Node.net, который дает нам:
  • Ту же идеологию работы, что и у Node.JS (однопоточный событийный фасад, неблокируемый ввод/вывод на заднем плане);
  • Совместимость с Node.JS по предоставляемому API;
  • Написан полностью на JavaScript (JScript.NET);
  • Работает на движке .NET.
Total votes 36: ↑21 and ↓15+6
Comments34

Bespin переходит на node.js

Reading time1 min
Views1.1K
Как стало известно, после переработки клиентской стороны своего редактора разработчики проекта Bespin, судя по новому плану развития, перепишут серверную часть с Python/WSGI на Node.js.

Радует, что количество серьёзных проектов, переходящих на Node, неуклонно растёт.

Bespin — редактор исходного кода, чей клиент работает внутри web-обозревателя (подробнее о Bespin на Хабре).
Total votes 31: ↑29 and ↓2+27
Comments12

Колибри: Обзор вашего интернет-трафика в реальном времени

Reading time2 min
Views1.6K
logo
Михаил Натт и Бенни Вонг создали интересный продукт для интернет-аналитики в реальном времени, названный «Колибри» (Hummingbird). Он создан с использованием таких горячих технологий, как Node, Canvas, Web Sockets, MongoDB.
Читать дальше →
Total votes 45: ↑37 and ↓8+29
Comments11

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity