• JSCS, CST и новое начало

      Мы наконец-то выпустили JSCS версии 3.0, и надо сказать, что помимо энтузиазма, мы испытываем еще и некоторую грусть. Над новой мажорной версией мы работали много и долго, это было довольно интересно и местами захватывающе. Грустно от того, что это будет последней версией JSCS.

      С помощью вас, JavaScript разработчиков, которые помогали JSCS, проект смог достичь успеха. Около 5 тысяч звезд на гитхабе и более 27 тысяч скачиваний npm пакета в день. Тем не менее, мы приняли решение не выпускать новых мажорных версий и впоследствии прекратить работу над проектом.
      Что дальше?
    • Как ESLint реагирует на ситуацию с удалением пакетов из NPM

        После того, как произошла ситуация с удалением пакетов из NPM, которая затронула огромное количество пользователей пакетов babel, jscs и многих других (об этом можно почитать здесь: «A discussion about the breaking of the Internet»), многие разработчики Open Source начали рассуждать о будущем NPM и экосистемы JS в целом.

        Мнения разделились:


        Ну а команды крупных Open Source пакетов, на которые свалилось огромное количество тикетов в github, всерьез задумались о том, как не допустить такой ситуации в будущем. Особенно пострадали те проекты, которые часто используются в CI, так как именно пользователи CI в первую очередь заметили проблемы с отсутствующими зависимостями. Одним из таких проектов является ESLint, имеющий порядка 70 тысяч установок в день, большинство из которых приходится на CI-сборки.
        Читать дальше →
      • JSCS: JavaScript Code Style

          Когда девять месяцев назад я написал для себя маленькую консольную утилиту, я и не подозревал, что вскоре она превратится в серьёзный и единственный в своём роде инструмент, которым будут пользоваться даже такие известные всем команды, как jQuery, Bootstrap, Angular. Сейчас, когда я пишу эту статью, у моего проекта на гитхабе 1010 звёздочек, и мне очень радостно думать о том, что так много людей смогли с помощью моей придумки сделать свою работу удобнее.

          История этого проекта началась с моей личной боли.

          Незадолго до этого момента я перевёлся из одной команды Яндекс.Карт в другую и постепенно вливался в разработку нового для меня продукта. Все было хорошо, новый проект мне нравился, но кодстайл, в котором писали ребята из моей новой команды, очень уж сильно отличался от того стиля кодирования, в котором писал я и ребята из моей прежней команды. Однажды меня даже посетила нелепая мысль, что кодстайл в этой группе писался в противоположность кодстайлу в прежней группе специально, чтобы запутать меня.

          Читать дальше →
        • Vow: самые быстрые промисы

            Хочу предоставить вашему вниманию библиотеку Vow, которую написал мой коллега Дмитрий Филатов dfilatov.

            Библиотека реализует Promises/A+, работает очень быстро и требует малого объема памяти. По тестам производительности сильно опережает Q, но при этом сохраняет асинхронную манеру работы.

            Работа с Vow выглядит так же просто, как работа с Q. Из недостатков (по сравнению с Q) можно лишь выделить отсутствие progress.

            Пример кода с использованием Vow:
            function readFile(filename, encoding) {
                var promise = Vow.promise();
                fs.readFile(filename, encoding, function(err, data) {
                    if (err) return promise.reject(err);
                    promise.fulfill(data);
                });
                return promise;
            }
            Vow.all([readFile('test1.txt', 'utf8'), readFile('test2.txt', 'utf8')]).then(function(results) {
                console.log(results.join('\n'));
            });
            

            Читать дальше →
          • Две истории о TimeMachine


              Time Machine — инновационная система резервного копирования, встроенная непосредственно в Mac OS X 10.5 «Leopard». Для работы cовместно с Time Machine в среде Mac OS X компанией Apple Inc. выпущена точка доступа Time Capsule.

              Хочу рассказать две истории о том, как Time Machine спас меня.

              Прошу под кат
            • Победа копирастов на примере PlayStation Portable

                На хабре часто обсуждают возможное будущее, в котором не будет пиратства. И тогда производители контента снизят цены, будут лояльными к пользователям и чуть ли не будут раздавать все за бесценок. Так ли это будет? Похоже, что совсем нет.
                Читать дальше →
              • Несколько советов для PHP-разработчиков

                  image Хочу опубликовать небольшой сборник советов для современных PHP-разработчиков. Я умышленно не связываю их с теми или иными фреймворками, библиотеками и тп. Надеюсь, что мои советы помогут кому-то лучше понять PHP, научиться лучше его использовать. Некоторые из них могут быть не специфичны для PHP, но для программирования в общем.
                  Читать дальше →
                • Билайн и лотерея

                    image Мне надоели приходящие постоянно сообщения о лотереи от Билайна и я решил как-то отписаться от всего этого, для чего открыл «Правила» на сайте 1010.beeline.ru.

                    Согласно правилам, для отписки от этого спама надо отправить СМС на номер 3003:
                    11. Если Участник не заинтересован в получении информации о дополнительных баллах и других предложениях, он/она должен отправить бесплатное текстовое СМС сообщение на короткий номер 3003. Отправка подобного СМС сообщения означает, что Организатор должен прекратить отправлять Участнику дополнительную информацию.

                    Вчера я отправил СМС для отписки, и тут началось веселье. Если раньше спам приходил в среднем раз в неделю, то через 5 минут после отправки СМС мне пришло следующее сообщение:
                    Мы выбрали именно тебя! Отправь как можно быстрее одно СМС на 1010! До начала розыгрыша осталось пару минут! (49р.) Инфо: 1010 (бесп)

                    Читать дальше →
                  • encached: кеширующий сервер

                      Идея написания сервера кеша приходила ко мне давно, но небыло подходящего повода и инструмента, чтобы начать над ним работу. Сделать свой сервер кеша мне хотелось по двум причинам: опыт, возможность легко добавлять нужные мне функции (кто видел код memcached, тот меня поймет). Основной проблемой для меня был C++. Несмотря на то, что я нередко с ним сталкиваюсь, он мне не нравится совсем. Я не буду начинать холивар и писать о его недостатках. Он мне не нравится так же как кефир с детства: мы с ним несовместимы. Поэтому для меня было большой новостью существование FreePascal. Когда-то давно у меня был опыт работы на Delphi, поэтому с Pascal я был «на ты». Особенно меня удивило то, что FreePascal оказался кроссплатформенным (чем Delphi совсем не блистал).
                      Читать дальше →