Раньше основной библиотекой для парсинга был JSDOM, который страдал излишней тяжеловесностью и на самом деле тормозил скорее процесс парсинга. Но время изменились и пришел cheerio. Он делает почти все то же самое, и отбрасывает лишние из процесса, при этом сам реализует какую-то часть jQuery(а именно ту, которая нам нужна для парсинга). И за счет этого позволяет наконец написать не тормозящий парсер, при этом не используя regexp'ы ради увеличения производительности. Он справляется и с xml, только нужно вызвать его с {xmlMode: true}. О том как можно легко парсить на nodeJS под катом.
Читать полностью »
Рубрика «node.js» - 81
Пишем парсер на NodeJS
2014-01-24 в 8:20, admin, рубрики: javascript, node.js, nodejs, parser, метки: javascript, nodejs, parserОблачный API для мобильных приложений своими руками. Часть 1
2014-01-22 в 7:33, admin, рубрики: api, backend, cloud, mobile services, node.js, windows azure, облако, Облачные вычисления, метки: api, backend, cloud, mobile services, node.js, windows azure, облакоВместо вcтупления
На заре программирования и до совсем недавнего времени программа была чем-то законченным, полностью готовой к употреблению самостоятельной единицей, которая выполняла свои функции и только их.
Однако с появлением мобильных устройств, веб сайтов с богатой логикой и социальных сетей все стало меняться. Сейчас программы, которые не выходят в сеть, не умеют что-то выкладывать в фейсбуки и вообще работают сами в себе, практически не имеют права на жизнь. Даже професcиональные инструменты, такие как, Microsoft Office 2013, стали поддерживать облачные хранилища для обмена документами.
Мир меняется. Теперь, чтобы заработать денег на продаже софта, необязательно писать свою собственную операционную систему или антивирус, потратив кучу времени и ресурсов. Достаточно просто попросить свою жену и вдвоем разработать мировой хит. Поэтому многие сегодня мечтают создать своих злых птичек или кат-зе-роуп, изучая разработку под iOS, Android, Windows Phone.
Допустим, вы написали свое приложение и опубликовали его в каком-то из магазинов. Все отлично, вы получаете прибыль, но хочется больше. Вы понимаете, что надо писать приложения еще и для других платформ, чтобы расширить пользовательскую базу. Здесь-то и кроется первая засада — как минимизировать количество кода, который вы пишете, если приложения будут работать по большей степени одинаково и отличаться будут только внешним видом (и то не факт) и языком программирования?
Читать полностью »
Реализация алгоритма шинглов на Node.JS. Поиск нечетких дубликатов для английских текстов
2014-01-21 в 10:11, admin, рубрики: node.js, Алгоритмы, алгоритмы поиска, Веб-разработка, метки: node.js, алгоритмы поискаПри работе с информацией часто возникают задачи парсинга веб-страниц. Одной из проблем в этом деле является определение похожих страниц. Хороший пример такого алгоритма — «Алгоритм шинглов для веб-документов».
Часть проекта по парсингу реализована на Node.JS, поэтому и алгоритм нужно было реализовать на нем. Реализаций на javascript или npm-пакетов я не нашел — пришлось писать свою.
Читать полностью »
Назад, к технологиям верхнего палеолита, от любимых всеми REST, STATEless, CRUD, CGI, FastСGI и MVC
2014-01-20 в 7:58, admin, рубрики: api, cgi, crud, event loop, fastcgi, mvc, mvp, node.js, rest, RESTful, statefull, Анализ и проектирование систем, архитектура, Веб-разработка, метки: cgi, crud, event loop, fastcgi, model, mvc, mvp, node.js, rest, RESTful, statefull, архитектура «Только со смертью догмы начинается наука.»
// Галилео Галилей
«Я начал завидовать рабам. Они всё знают заранее. У них твёрдые убеждения.»
// х/ф Марка Захарова «Убить дракона» по мотивам пьесы Евгения Шварца
Уже пару лет и дня не проходит, чтобы я не услышал (или не прочитал) от людей, начинающих новые проекты, фразу типа «Возьмем серверный движок для REST API и MVC, и погнали». Сначала я думал, что у этих слов есть один источник, может книжку какую завезли во все магазины или где-то в топе поисковиков лежит статья, зомбирующая разработчиков. Если же выяснять у них, что они понимают под REST и MVC, то можно повредиться умом. Ну с MVC уже все ясно, об этом я уже давно писал, ничего не изменилось, только усугубилось, стоит набрать в Google Images «mvc» и мы увидим страшное, стрелочки в любые стороны. Ну а про REST отвечают следующее: ну как же, нам нужно из браузерного GUI и мобильного приложения вызывать серверные методы, например: setUserCity(userId, cityId) или calculateMatrix(data) или startVideoConverter(options, source, destination) а потом мы столкнемся с большой нагрузкой и архитектура REST все решит. Дальше я задаю вопросы, от которых глаза округляются уже у тех, кто недавно еще горел праведной верой, рвался в бой и точно знал, что к чему в этом мире. Теперь можно перейти к рассмотрению терминологической катастрофы, в эпицентре которой мы с вами пребываем.
Читать полностью »
Компоненты by T.J.Holowaychuk
2014-01-17 в 12:58, admin, рубрики: make, node.js, watch, Веб-разработка, Программирование, метки: make, node.js, watchДоклад на девятой конференции «Свободное программное обеспечение в высшей школе», 25–26 января 2014. Исходный код заметок и примеров к ним доступен на https://github.com/mbykov/articles.
- первое знакомство с component — unix way в веб-программировании
- пример создания компоненты
- юнит-тестирование — консоль
- юнит-тестирование — express
- юнит-тестирование — браузер
- make vs. gulp vs. grunt, & watch
- Z's dead, baby
- компоненты и couchapps
Все, кто работает с node.js
, знают TJ Головайчука, автора веб-сервера express, библиотеки для тестирования mocha, и прочая, и прочая. Но, наверное, самый блестящий его проект на сегодня — это Component — http://github.com/component. На русском пока немного литературы о Компонентах, попробую восполнить этот пробел. TJ опубликовал первое сообщение о Компонентах в своем блоге 19 декабря 2012 г. Сейчас, после взрывного роста, количество компонент уже зашкаливает за тысячу, и растет каждый день.
О логгировании в Node.js
2014-01-17 в 11:22, admin, рубрики: node.js, логгирование, метки: node.js, логгирование Для начала повторю то, что каждый разработчик должен знать об этом — надо предохраняться.
Читать полностью »
Видеозаписи докладов потока «JavaScript на бекенде» конференции FOSS Sea
2014-01-16 в 17:40, admin, рубрики: FOSS Sea, GeeksLab, javascript, node.js, Блог компании RootUA Media, видео, конференция, метки: FOSS Sea, GeeksLab, javascript, node.js, видео, конференция
Команда проекта GeeksLab 30 ноября 2013 года в Одессе провела VI специализированную конференцию FOSS Sea: back-end на базе свободных и открытых технологий. Один из потоков мероприятия был посвящен разработке бекенда на JavaScript. В данном потоке с докладами выступили представители таких компаний как: DataArt, Lohika, GlobalLogic, GradSoft, IT Adapter Corp и другие. Презентации и видеозаписи докладов под катом.
Читать полностью »
HuGu — коллективный плейер музыки Вконтакте на node.js
2014-01-16 в 8:53, admin, рубрики: javascript, music, node.js, метки: javascript, music, node.js, vkontakte apiЗачем это надо? А вспомним ситуацию: в офисе работают несколько человек, и у одного к компьютеру подключены музыкальные колонки. — «Вась, смени LoveRadio! Поставь Рамштайна!» И Вася, отвлекаясь от отчета/игры/мысли: «Надоел Рамштайн, давайте лучше „Поющие трусы“ поставлю? Мегазачотные песни!»
А может ли каждый добавлять свои любимые музыкальные композиции в общий плейлист? Через браузер? Из плейлиста Вконтакте? Да, может.
Первые шаги к вселенной MeteorJS
2014-01-14 в 10:48, admin, рубрики: fullstack development, javascript, javascript framework, Meteor, Meteor.JS, Meteorjs, node.js, метки: fullstack development, javascript, javascript framework, Meteor, meteorjs
Если вы интересуетесь клиентским программированием, то как и я, вероятно, могли слышать о Meteor, уже не новом веб-фреймворке, который относится к набирающим популярность, так называемым «фулл-стек» фреймворкам. О нем уже писали на Хабре, чтобы не дублировать информацию, можно почитать здесь или тут. Я довольно давно слышал о метеоре, но все никак не решался его пощупать. И вот, пришли очередные выходные, и я снова наткнулся на него. В этот раз я решил честно попробовать, что это такое. Может быть, этот пост даст кому-то небольшой толчок к началу изучения или хотя бы знакомства с этим инструментом. Тогда это было бы не зря.
Disclaimer: может вызвать зависимость.
Давайте же сделаем первые шаги к освоению meteorjs, добро пожаловать под кат.
Читать полностью »
Кластеризация nodejs web-сервера с помощью node-clusterize-cli
2014-01-13 в 12:43, admin, рубрики: cli, clustering, clusterization, node.js, Серверное администрирование, метки: cli, clustering, clusterization, node.jsПоследние полгода я занимаюсь разработкой достаточно большого web-приложения, под капотом которого ревет и дымится NodeJS. Когда дело дошло до деплоя на продакшн я задумался: «почему бы мне не использовать несколько тредов с инстансом приложения?».
Реализовав кластер, я увидел, что производительность от его использования возросла в 1,5 раза, что очень даже не плохо, учитывая малый объем потраченных усилий. Но я решил не останавливаться на этом, и сделать удобный CLI для работы с кластером, чтобы отвязать код, который отвечает за запуск кластера от конкретного приложения. Кроме того, очень хотелось демонизировать кластер, чтобы он висел себе молча в процессах, поднимал упавшие воркеры, писал в логи, и никого больше не отвлекал.
Так появился node-clusterize-cli.
Читать полностью »