• 5 малоизвестных возможностей JSON.stringify()



      Доброго времени суток, друзья!

      В этой небольшой заметке я хочу рассказать вам о некоторых редко используемых возможностях JSON.stringify(). Возможно, они окажутся вам полезными.

      JSON.stringify() часто используется при отладке для преобразования объекта или обычной строки в строку в формате JSON. Но как данный метод используется, и можем ли мы обойтись toString()? Давайте попробуем это сделать.

      // создаем объект user
      const user = {
          name: 'Harry Heman',
          age: 29,
          job: 'developer'
      }
      
      // преобразуем объект в строку, используя стандартный метод toString(), и выводим результат в консоль
      console.log(user.toString()) // [object Object]
      

      [object Object] — это не совсем то, что мы хотели увидеть, не правда ли?

      Не спрашивайте, зачем мы вообще используем toString(). Предположим, что нам жизненно необходимо перевести объект в строку.

      Теперь попробуем использовать JSON.stringify():

      console.log(JSON.stringify(user)) // {"name":"Harry Heman","age":29, "job": "developer"}
      

      Мы сделали это, Карл!

      Однако возможности JSON.stringify() этим не исчерпываются.
      Читать дальше →
      • +47
      • 13.7k
      • 3
    • 50 цитат о программировании всех времён

      • Translation
      Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

      50. Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.
      — Rick Cook

      49. Lisp — это не язык, а строительный материал.
      — Alan Kay

      48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
      — Edward V Berard
      Читать дальше →
    • Необыкновенный способ генерации лабиринтов

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

      Вас ждет много анализа и немного частных производных. Код прилагается.
      Прошу под кат!

      Читать дальше →
    • Ежедневная работа с Git

      • Tutorial
      Я совсем не долго изучаю и использую git практически везде, где только можно. Однако, за это время я успел многому научиться и хочу поделиться своим опытом с сообществом.

      Я постараюсь донести основные идеи, показать как эта VCS помогает разрабатывать проект. Надеюсь, что после прочтения вы сможете ответить на вопросы:
      • можно ли git «подстроить» под тот процесс разработки, который мне нужен?
      • будет ли менеджер и заказчик удовлетворён этим процессом?
      • будет ли легко работать разработчикам?
      • смогут ли новички быстро включиться в процесс?
      • можно ли процесс относительно легко и быстро изменить?


      Конечно, я попытаюсь рассказать обо всём по-порядку, начиная с основ. Поэтому, эта статья будет крайне полезна тем, кто только начинает или хочет разобраться с git. Более опытные читатели, возможно, найдут для себя что-то новое, укажут на ошибки или поделятся советом.

      Далее очень много букв случайным образом превратились в пост.
    • Лексическая область видимости функций в JavaScript

        Почитав недавние посты для новичков JavaScript, решил написать небольшой топик про один интересный вопрос, которого ни один из авторов пока не касался, а именно, вопрос про область видимости функций в JavaScript.
        Читать дальше →
      • Ключевое слово this в javascript — учимся определять контекст на практике

        • Tutorial
        По просьбам некоторых читателей решил написать топик про контекст в javascript. Новички javascript часто не понимают значение ключевого слова this в javascript. Данный топик будет интересен не только новичкам, а также тем, кто просто хочет освежить данный аспект в памяти. Посмотрите пример ниже. Если вы затрудняетесь ответить на вопрос «что будет выведено в логе» хотя бы в одном из пунктов или хотите просто посмотреть ответы — добро пожаловать под кат.

        var f = function() {
            this.x = 5;
            (function() {
                this.x = 3;
            })();
            console.log(this.x);
        };
        
        var obj = {x: 4, m: function() {
            console.log(this.x);
        }};
        
        
        f();
        new f();
        obj.m();
        new obj.m();
        f.call(f);
        obj.m.call(f);
        

        Читать дальше →
      • Создаем чат на Node.js и Socket.IO

        В данной статье я попытаюсь показать, как можно создать простой чат, используя Node.js в связке с Socket.IO. Изначально я хотел построить чат на чистых Websockets, но столкнулся с практически полным отсутствием готовых реализаций сервера для них в Интернете. Так что решил не изобретать велосипед, а использовать готовую библиотеку.
        В моем случае сервер работает под Ubuntu, поэтому все примеры будут для неё (и ссылки в примерах — на него же).

        Установка компонентов

        Первым делом нам потребуются собственно Node.js (инструкция по инсталляции и ссылки на скачивание здесь) и Socket.IO. Модули для Node.js проще всего устанавливать, используя менеджер npm —
        curl http://npmjs.org/install.sh | sh
        npm install socket.io
        

        Серверная часть

        Структура серверной части такова: сервер принимает сообщение, если это команда — выполняет определенные действия, если просто сообщение — рассылает всем остальным участникам.
        Читать дальше →
      • Документация jQuery UI на русском

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

          Кроме этого, обновлена карта функций, в которую были добавлены методы с двух последних обновлений jQuery, а так же все плагины jQuery UI.
        • PHP: фрактал плохого дизайна

          • Translation

          Предисловие


          Я капризный. Я жалуюсь о многих вещах. Многое в мире технологий мне не нравится и это предсказуемо: программирование — шумная молодая дисциплина, и никто из нас не имеет ни малейшего представления, что он делает. Учитывая закон Старджона, у нас достаточно вещей для постижения на всю жизнь.

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

          PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз, когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).

          PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
          Читать дальше →