Метка «node.js» - 2

В современном JavaScript существует целый пласт различных видов итерируемых структур данных:

  • Array
  • TypedArrays
  • Object
  • Map
  • Set
  • String

А также появились генераторы и универсальный протокол @@iterator, который позволят итерировать что угодно и как угодно. И в тоже время для некоторых типов данных (в основном для массивов) определены различные методы для удобной функциональной работы и простого итерирования, например, forEach, map или reduce, и всё было бы хорошо, однако:

  • Большинство методов определены только для массивов;
  • Определяемое API слишком примитивно и не покрывает целый ряд задач;
  • До сих пор скорость выполнения нативных итераторов далека от идеала и существенно уступает реализации на циклах.

Читать полностью »

2ГИС полностью обновился. Впервые мы его показали 19 ноября с урезанным функционалом и, пусть и не критичными, но ошибками — всё-таки это была стадия публичного бета-тестирования.

За пять месяцев мы, конечно, многое исправили и допилили. О результатах уже разосланы пресс-релизы. Например, про то, что у нас 400 000 фотографий и 500 000 отзывов или, что мы знаем входы в почти один миллион организаций страны.

К сожалению (а может и к счастью), формат пресс-релиза не позволяет рассказать чуть больше подробностей, немного погордиться или признать свои ошибки. Попробуем сделать это под катом.

Привет, это новый 2ГИС, о котором говорят твои друзьяПопробоватьЧитать полностью »

MIT опубликовал исходники проекта Mylar — платформы для создания безопасных приложений, с шифрованием и
поиском по зашифрованным данным.
Читать полностью »

Недавно появился проект pako, это порт на яваскрипт известной библиотеки для компрессии и декомпрессии данных — zlib.

Очень любопытен результат тестов.
Читать полностью »

Сравнение популярных систем сборки для frontend разработчиков

Я стал замечать, что в последнее время build-системам стали уделять всё больше внимания, и, под влиянием этого, их в одночасье стало настолько много, что, честно говоря, уже всех и не упомнить. Последнее время у меня на слуху четыре системы: Grunt, Gulp, Brunch и Gear. Про все что-то где-то было написано, но ни разу не ставился вопрос о том, какие преимущества или недостатки они имеют друг перед другом? И именно поэтому я решил провести сравнительный анализ самых популярных build-систем(по версии google).

Но сперва надо определиться с критериями, по которым мы будем оценивать эти системы:

  • Начало работы.
  • Производительность. Никто не хочет ждать по минуте после изменения одного coffee-файла.
  • Документация. Чем нагляднее и проще — тем лучше.
  • Плагины. Ведь мы не хотим столкнуться с проблемой, когда мы начали использовать билд-систему, а в ней нет адаптера, скажем, для jasmine?

Теперь, я полагаю, с вводной частью можно покончить и приступить, наконец, к сравнению.
Читать полностью »

Недавно передо мной встала задача обрезать около сотни огромных картинок из фотобанка под несколько десятков разных размеров. Эти готовые картинки потом будут использоваться клиентами CMS для оформления своих сайтов. Прикинув сколько времени займет этот процесс в Фотошопе, я пригорюнился — встретить следующий Новый год за обрезкой картинок не входит в мои планы.
Читать полностью »

На самом деле — нет. Немного не TDD. Думаю, что правильнее назвать это стремлением к 100%-покрытию кода тестами: у меня нет «красненьких» и «зелененьких» этапов и рефакторинга после n-ного цикла. А иногда (бог ты мой) я пишу код до написания тестов.

Возможно, дальше я буду говорить очевидные любому последователю TDD вещи, прошу заранее меня за это простить. Ниже я бы хотел поделиться своими впечатлениями от написания тестов в целом, рассказать с какими проблемами я столкнулся (а они оказались совсем не там, где я ожидал), какие ошибки я допустил, какие выводы сделал. В придачу ко всему, я попытаюсь объяснить, почему я буду стремиться впредь писать тесты на весь свой код, да и вообще хочу нормально научиться в TDD.

Читать полностью »

Облачный бекенд для мобильных приложений своими руками. Часть 2

В первой части я рассказал, как создать RESTful API в облаке Windows Azure и как начать его использовать в своем мобильном приложении. Рекомендую ознакомиться с той статьей, поскольку данный текст и примеры во многом опираются на нее.

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

Windows Azure и Git

Как вы неверно уже слышали, компания Microsoft, к ее чести, в последнее время все чаще обращает свое внимание на Open Source технологии. Так, например, в последней версии Visual Studio 2013 была «из коробки» внедрена поддержка системы контроля версий Git. Облако Windows Azure тоже не осталось в стороне, и теперь позволяет работать с кодом не только через TFS, но и с помощью Git и прочих систем (SVN, Dropbox, Bitbucket).

В Windows Azure Mobile Services решили пойти дальше и оставить для работы только Git. Возможно это так только на время Preview-версии данного решения, но, учитывая тенденции корпорации, такой вариант может перекочевать в релиз.

Что же нам дает использование Git в своем проекте? Да все абсолютно то же, что и всегда. А именно — совместная работа над кодом, локальные репозитории у каждого участника команды, поддержка версионности. Но что еще важно, так это соблюдения принципа continuous integration — непрерывное развертывание решения при каждом новом чекине кода в репозиторий. Каждый раз, когда кто-то из участников команды отправляет свои изменения на сервер, происходит их деплой в облаке. Все это работает на Kudu (кстати, еще один open source проект), и довольно успешно.
Читать полностью »

Заморочился я автообновлением странички в браузере на таскаемом с собой iPad при разработке NodeJS/ExpressJS-приложений, чтобы видеть все изменения на лету.
Под катом — как очень просто сделать из мобильного гаджета средство живого просмотра разрабатываемых веб-приложений.
Читать полностью »

Вместо вcтупления

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

Однако с появлением мобильных устройств, веб сайтов с богатой логикой и социальных сетей все стало меняться. Сейчас программы, которые не выходят в сеть, не умеют что-то выкладывать в фейсбуки и вообще работают сами в себе, практически не имеют права на жизнь. Даже професcиональные инструменты, такие как, Microsoft Office 2013, стали поддерживать облачные хранилища для обмена документами.

Мир меняется. Теперь, чтобы заработать денег на продаже софта, необязательно писать свою собственную операционную систему или антивирус, потратив кучу времени и ресурсов. Достаточно просто попросить свою жену и вдвоем разработать мировой хит. Поэтому многие сегодня мечтают создать своих злых птичек или кат-зе-роуп, изучая разработку под iOS, Android, Windows Phone.

Допустим, вы написали свое приложение и опубликовали его в каком-то из магазинов. Все отлично, вы получаете прибыль, но хочется больше. Вы понимаете, что надо писать приложения еще и для других платформ, чтобы расширить пользовательскую базу. Здесь-то и кроется первая засада — как минимизировать количество кода, который вы пишете, если приложения будут работать по большей степени одинаково и отличаться будут только внешним видом (и то не факт) и языком программирования?
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js