Search
Write a publication
Pull to refresh
51
0

User

Send message

Запускаем jQuery на движке Node.js вместо браузера

Reading time2 min
Views21K
Библиотека jQuery — это общепризнанное средство манипуляции сразу несколькими форматами данных (XML, HTML, объекты DOM, обыкновенные объекты), да притом работающее посредством удобного (цепного) вызова методов с удобными (краткими) названиями. Поэтому ничуть не удивляют попытки приспособить jQuery не только к одному клиентскому, но также ещё и к серверному джаваскрипту — в частности, к Node.js.

Признаюсь честно, что когда разработчики jQuery превозмогли проблему №7102, то её название («Register jQuery as a CommonJS async module») на какое-то время даже заставило меня обмануться: я сперва подумал было, что и в Node.js (так как модули Node.js и СommonJS имеют немало общего) отныне jQuery станет работать невозбранно. Ан нет, не тут-то было. Пристальное вглядывание в коммит и в запрос на слияние позволяет осознать, что jQuery, в сущности, обрёл возможность регистрироваться только как AMD-модуль и даже проверяет свойства define.amd и define.amd.jQuery перед саморегистрацией.

Собственно говоря, архитектура jQuery «затóчена» под употребление в условиях браузерной DOM: код jQuery полагается на существование объекта window, который служит аргументом главного замыкания, окаймляющего весь код jQuery. Прежде же таких неявных предположений было ещё больше, и только с устранением проблемы №6690 библиотека jQuery перестала полагаться на существование глобальных объектов navigator и location, начав вместо того получать их как свойства объекта window. (Понятно, что такое предположение никак не подходило для Node.js, где глобальные объекты служат свойствами объекта global, а вовсе не window; а равно не подходило и ко многим прочим реализациям CommonJS.)

Потому для запуска jQuery в Node.js применяются готовые реализации браузерной DOM — такие, как пакет jsdom, на основе которого невозбранно работает, например, вот какой код, предлагаемый в качестве примера:

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

Как создавать «зеленый» код

Reading time6 min
Views5.3K
Что такое энерго-эффективность в применении к мобильным платформам? Простыми словами это возможность сделать больше, затратив при этом меньше энергии.

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

«Защита» mp3 файлов на amazon.com

Reading time3 min
Views11K
Всем привет.
Не так давно дали на работе задачку по изучению факта наличия какой-либо скрытой информации в требуемых mp3-файлах. Т.к. точно не было известно, есть ли что-то в них или нет, задача представлялась почти неразрешимой. В свое время писал диплом на тему скрытия информации в аудиофайлах (аудиостеганография) и представлял, что если захотеть что-то спрятать, то обнаружить это будет почти невозможно. Первым делом начал поиски с чтения полей ID3 тэгов, вспомнил, что есть, в частности, тэг Lyrics (служащий для сохранения текста песни), содержимое которого в том же winamp-е не отображается.

На поверку данное поле оказалось пустым.
После некоторого времени общения с гуглом наткнулся вначале на статью про Amazon MP3 (http://en.wikipedia.org/wiki/Amazon_MP3), а затем уже и на песни на amazon.com, которые содержат в себе некий «unique purchase identifier».
Читать дальше →

Кроссплатформенность — это круто

Reading time8 min
Views30K
Этот пост участвует в конкурсе „Умные телефоны за умные посты“.

Ни для кого не секрет, что сегодня мобильные игры очень популярны. Возможность написать одну из таких игр есть у каждого разработчика, даже начинающего. Часто возникает вопрос с выбором платформы. Конечно, хочется, чтобы игра была сразу везде: на iOS и Android, на WP7 и MeeGo, на десктопе и в браузере. И чтобы все это можно было лекго реализовать с помощью бесплатных инструментов.



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

Бизнес в США из России. Часть II. Деньги и банки

Reading time11 min
Views66K
Сегодня попробую осветить денежные вопросы.
Банковский счет, карты, платежи, PayPal и все такое.
Это продолжение топика HOWTO: свой бизнес в США из России, если кто пропустил.
Читать дальше →

Java по-русски. Часть первая: Книги

Reading time2 min
Views497K
Не так давно я проводил опрос «Какие материалы о Java вас интересуют на русском языке?» среди посетителей Хабра. Вторым этапом моего исследования будет обзор существующих русско-язычных ресурсов.

Книги


За 2009 на Ozon.ru можно найти 8 книг по Java (всего за последние 3 года их вышло 22 — примерно по 7 в год, на books.ru набор примерно такой же, так что наша выборка довольно репрезентативна). Посмотрим, что это за книги?
Читать дальше →

Java по-русски. Часть вторая: интернет-ресурсы

Reading time3 min
Views206K
В продолжение первой части. Сегодня будем рассматривать ресурсы о Java в интернете, которые подразделим на 4 части: вендоры, JUG, форумы, новости. А заодно подведём итоги.

Вендоры


Sun Microsystems

image
Основной сайт компании Sun содержит чисто рекламную информацию, поэтому рассматривать мы будем Сеть Разработчиков. Итак, что же здесь есть:
  • JavaFX — хит сезона. В рамках продвижения Sun проводит конкурсы по этой технологии, ещё вы можете найти документацию на русском языке и даже Wiki.
  • Академические программы — информация об образовательных программах. В основном это курсы для преподавателей и учебные материалы — лекции, написанные в рамках грантов.
  • Java SE, Java EE, Java ME, JavaCard за 2009 год не содержат практически никаких обновлений, а за предыдущие года есть разве что переводы некоторых статей.
  • Форум довольно мёртвый, за исключением раздела о JavaFX.
  • Ещё есть переводы англоязычных блогов The Aquarium и The Planetarium, посвящённых новостям о Java EE и Java для всех других платформ(SE, ME, FX, etc...) соответственно.

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

Расширения Firefox для веб-разработки на все случаи жизни

Reading time6 min
Views57K
Исторически сложилось так, что Firefox пользуется широкой популярностью среди веб-разработчиков благодаря его расширяемости через подключение всевозможных плагинов и дополнений, написанных сторонними разработчиками. Идея выделения функционала в расширения позволила решать массу всевозможных задач прямо в браузере, не прибегая к внешним инструментам.

Безусловно в этом списке вы обязательно найдёте уже знакомые расширения, однако огромный пласт полезных расширений всегда остаётся в стороне. Так что приготовьтесь установить ещё парочку расширений! :)

Встроенные инструменты разработки в Firefox


Перед началом списка было бы неправильно не упомянуть об инструментах, уже встроенных в Firefox. Здесь речь идёт о тех самых инструментах разработки в Firefox Aurora 10 и том функционале, который сегодня можно найти в любом современном браузере.

При разработке интерфейса этих инструментов было перепробовано множество подходов и решений. В результате получился довольно приятный интерфейс, который любой желающий может испробовать, установив Firefox Aurora (хм, вы ещё его не поставили?)



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

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

Удобный доступ к файлам на удаленных хостах

Reading time3 min
Views58K
На Хабре достаточно много разработчиков работают с файлами на удаленных хостах. На локальной машине запускается IDE, отладчик, все необходимое, а сами файлы находятся на сервере, где они регулярно бакапятся, автобилдятся, тестируются и так далее. Очень удобный рабочий вариант. Да я сам его использую.
Единственная проблема, доставляющая неудобство — файлы все же находятся на другом компе, и доступ к ним не такой простой и прозрачный как к «своим».
Под катом — как сделать такой доступ максимально удобным. Чтобы он запускался автоматом когда надо, а самое главное — чтобы не запускался, когда не надо!
Читать дальше →

Шпаргалка по пакетному менеджеру NPM

Reading time5 min
Views421K

npm — это пакетный менеджер node.js. С его помощью можно управлять модулями и зависимостями.
Небольшая шпаргалка всех моих любимых команд npm:

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

Несколько полезных сервисов

Reading time2 min
Views126K
Хочу поделиться ссылками на несколько полезных сервисов. Некоторые из них помогут сэкономить время, другие — сделают за Вас незнакомую/нелюбимую работу. Список разбит по категориям, чтобы было легче ориентироваться.

Сервисы опросов
userreport.com (добавил Romanych)
simpoll.ru
webanketa.com (добавил mihass)

Кнопки постинга в социальные сети
Кнопка от Яндекса
addthis.com (добавил UksusoFF)
share42.com
Читать дальше →

Упрощение жизни разработчика с помощью сторонних сервисов

Reading time3 min
Views9.7K
Представляю скромную подборку сервисов, которые ускоряют экономят время разработчику и/или ресурсы сервера. Здесь не будет подробных обзоров, только список с кратким описанием и ссылками. Также, я не претендую на свежесть ресурсов, поэтому кому-то перечисленный список покажется слишком очевидным и известным всем.

Буду рад включить ссылки и описания, предложенные в комментариях.

Google Fusion Tables


Позволяет развернуть реляционную базу данных на серверах гугла с обращениями с помощью библиотеки Visualization или JSONP.
Статья на хабре: habrahabr.ru/blogs/webdev/116035
Ссылка: www.google.com/fusiontables/Home

Минусы: количество обращений в секунду равно пяти с одно IP адреса и столько же при обращении с аккаунта (используя авторизацию). То есть развернуть сайт с хорошей посещаемостью и работать с сервисом с помощью сервера не получится. Стоимость увеличения лимита — от 10 тысяч долларов в год (см. Maps API Premier). Кроме того, отсутствуют джойны, которые заменяются представлениями (view), создаваемыми через интерфейс.
Читать дальше →

Признаки плохого программиста

Reading time18 min
Views69K

Неспособность рассуждать о коде


«Рассуждать о коде» значит понимать порядок исполнения инструкций («исполнять программу в голове»), зная, каково предназначение кода.

Симптомы

  • Наличие «волшебного», «вуду» кода или кода, который не имеет никакого отношения к целям программы, но всё равно тщательно поддерживается (например, инициализация переменных, которые никогда не используются, вызов функций, не имеющих отношения к цели, создание выходных данных, которые не используются, и т.д.).
  • Многократные вызовы идемпотентных функций (например, вызов save() по нескольку раз, «чтобы уж точно»).
  • Исправление ошибок написанием избыточного кода, который замещает данные, полученные при исполнении неисправного кода.
  • «Йо-йо код», который конвертирует значения в различные представления, а потом конвертирует их обратно ровно в то же представление, с которого начинали (например, преобразование десятичного числа в строку, а потом обратно в десятичное число, или padding строчки с последующим trim'ом).
  • «Бульдозерный код», который создает впечатление рефакторинга посредством разбития кусков кода на процедуры, которые, правда, затем невозможно использовать где-либо еще (высокая когезия).

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

GitLab: open source версия Github

Reading time1 min
Views88K
Хотите поднять клон Github на своём собственном сервере с приватными репозиториями за корпоративным файрволом? Теперь вы можете это сделать благодаря появлению open source проекта GitLab. Он является хорошей альтернативой для корпоративной версии Github стоимостью до $5000 в год.

По сравнению с Gitorious, система GitLab отличается приятным интерфейсом и гораздо проще в установке.

13 октября вышла версия 1.0, через неделю обещают выкатить 1.1, а затем новые релизы GitLab 1.2, 1.3 и т.д. будут выходить каждый месяц.
Читать дальше →

12+ полезных Google Chrome chrome:// команд

Reading time2 min
Views400K
Все знают, что для того чтобы попасть в меню у Хрома, нужно нажать на Гаечный ключ в правом верхнем углу.

Однако есть несколько особенностей, которые не доступны из меню, которые вы можете увидеть только с помощью chrome:// команд.

Под катом приведены 12 самых полезных chrome:// команд, которые должны знать все.
Читать дальше →

Наши проекты: DNS хостинг с блекджеком и плюшками

Reading time4 min
Views8.7K
Продолжая серию статей о наших проектах, сделаем скачок и расскажем о нашей последней разработке: проекте DNS хостинга, основное назначение которого — предложить максимум возможностей за разумную стоимость. Статья рекомендована к прочтению всем владельцам доменов и интернет-ресурсов. В конце — бесплатные ваучеры всем желающим.

Предыстория


Все началось с того, что год назад мы задумались о повышении надежности нашей системы и для общего процесса оптимизации потребовалось, чтобы наш DNS хостинг поддерживал достаточно низкий TTL, скажем 5 минут. К сожалению, ResellerClub, где зарегистрированы наши домены и держится DNS зона, не дает такой возможности. В поисках альтернативы стало понятно, что с помощью системы доменных имен можно не только балансировать трафик между серверами, но и, например, фильтровать его во время DDoS-атаки. В прошлом году мы провели анализ предложений и даже опубликовали результат наших исследований и проверок на Хабре.

В процессе изучения рынка пришло понимание, того что по факту существует 2 типа предложений: простейший вариант DNS хостинга за адекватную цену (1-3 доллара в месяц) и DNS хостинг с массой дополнительных возможностей вроде гео-таргетинга, но по достаточно высоким ценам. Также существует вариант простенького хостинга по большим ценам, но его, по понятным причинам, мы не рассматривали. Вот чего не нашли — так это DNS хостинга, предлагающего все возможности и по адекватной цене. Поэтому мы решили создать велосипед такой проект самостоятельно.



Анализ


К разработке проекта мы подошли серьезно и начали с более детального анализа конкуренции. Основная масса предложений сводилась к пакету (1 домен + до 100 записей + до миллиона запросов) за 1-3 доллара в месяц. С технической стороны в большинстве вариантов предлагается поддержка популярных типов записей, обычный Round-robin, минимальный TTL в районе 1-5 минут. Количество серверов, обслуживающих конкурентные платформы, варьируется от 1 до 15 (за исключением Route 53 от Амазон).

Аналогичная услуга, но уже с поддержкой гео-таргетинга, продвинутой балансировкой, API и другими приятностями стоит уже намного дороже и, например у dyndns, начинается с 195 долларов. Посчитав себестоимость некоего пакета, мы пришли к выводу, что такой же набор услуг в пакете (1 домен + 100 записей + 1 миллионов запросов) мы можем предлагать всего за 2 доллара.

Как же свершить это чудо?
Читать дальше →

Система блоков в CMS LiveStreet

Reading time8 min
Views4.7K

LiveStreet — замечательная и любимая на хабре система. Однако если пробежаться глазами по сайтам, созданным с ее помощью несложно заметить, что большинство из них наследует две колонки стандартных шаблонов.
Но ведь LS может похвастаться простой, но от этого не менее функциональной системой блоков. Почему владельцы сайтов не используют ее? Возможно, дело в отсутствующей документации.
Это я сегодня с Вашей помощью и попробую исправить.
Читать дальше →

Полезные инструменты, туториалы и ресурсы

Reading time4 min
Views16K
Созданый Райаном Далем в 2009 году, Node.js — относительно новая технология, завоевавшая в последнее время большую популярность среди веб-разработчиков. Однако, до сих пор не каждый знает, что на самом деле Node.js это серверная JavaScript среда, использующая асинхронную событийную модель. Что это означает? Все просто: это среда, которая предназначена для написания масштабируемых, высокопроизводительных приложений. Почти как Ruby’s Event Machine или Python’s Twisted, но гораздо глубже — JavaScript реализовывает цикл событий, на уровне самого языка, а не как отдельная библиотека.



И это еще не все: то, что действительно круто в Node.js — это тысячи модулей, доступных для любых целей, а также активниешее сообщество этого молодого проекта. В этом обзоре вы найдете самые полезные ресурсы по Node.js, от просто удобных инструментов и подробных руководств, до углубленных статей и ресурсов о этой перспективной технологии. Используете ли вы Node.js? Поделитесь опытом в комментариях к этотому посту!

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

Hetzner dedicated или в поисках дешевого хостинга

Reading time7 min
Views21K
Хочу рассказать о том, как я озадачился поиском недорогого хостинга с поддержкой Java.
В начале решил, что неплохо бы купить железку, поставить ее дома, дать ей хороший канал и радоваться жизни. Но потом решил подсчитать примерную ежемесячную стоимость такого решения, и вышло, что 200Вт блок будет кушать ~3-4кВт в месяц (100-150Вт будет кушать железо), и это обойдется в 350-400 руб (у меня газовая плита).
Прибавим сюда хороший канал+ип, и имеем порядка 750 рублей (и это без резервного!).
Итого около 1000 рублей в месяц и еще порядка 8000 рублей уйдет разово на покупку компонентов, которые могут сойти за «файлопомойку» + UPS (>=2000 р) и мы видим что самостоятельно хостить «пару сайтов и почту» становится напряжных делом.
Кто-то предложит окупить это размещением проектов — но кто согласится платить на хостинг, которые висит дай-то бог на 30 мегабитах, при этом имеет шансы быть в offline из-за того, что кто-то перерезал провод в щитке, или у провайдера «опять сгорел dns».
Начал поиск я с матушки России и нашел
Читать дальше →

Визуализация графов с помощью библиотеки arbor.js

Reading time4 min
Views33K
Некое время назад, мне потребовалось визуализировать графы и хотелось найти уже готовое решение что бы не изобретать очередной велосипед. Мне в руки попалась библиотека arbor, которая используя jQuery предоставлет возможность отрисовывать вполне приемлемые графы в браузере.


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

Information

Rating
Does not participate
Registered
Activity