• Как интегрировать socket.io в express-generator?

    @Aves
    Да много разных способов можно придумать, например в app.js добавить
    app.io = function(server) {
        var io = require('socket.io')(server);
        io.on('connection', function (socket) {
            //...
        });
    }

    А в bin/www app.io(server);

    Или выделить обработчик в отдельный модуль
    // routes/socket.js
    function handler(socket) {
        // ...
    }
    
    module.exports = handler;
    
    // app.js
    var io = require('socket.io');
    var socket = require('./routes/socket');
    
    app.io = function(server) {
        io(server).on('connection', socket);
    };
    
    // bin/www
    app.io(server);
    Ответ написан
    Комментировать
  • Имеет ли смысл писать чат на meteor.js?

    @CapeRatel
    Практиковать метеор когда вы новичок? Это шутка? Чтобы писать всем что вы современный метеор тыкали?
    Если вы хотите двигаться в javascript то разумнее всего изучать или фронт angular, ember, react или смотреть в сторону nodejs.
    А метеор бесполезен как инструмент на мой взгляд. Нам до таких подходов еще жить и жить. Я бы лучше go учить начал как перспективу.
    Ответ написан
    2 комментария
  • Имеет ли смысл писать чат на meteor.js?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Если не для прода, то, видимо, в целях обучения.

    Если цель — разобраться в метеоре, то вперед. MongoDB достаточно шустра для реалтайма в учебных масштабах. Так же можно попробовать сделать на redis, он, вроде бы, шустрее на простых выборках (а в чате сложные и не нужны).

    Если цель — написать максимально быстрый чат, то текущие разговоры держим в памяти, а после некоторого периода неактивности сбрасываем в БД (монго, редис, тут уже не так важно). В этом случае и метеор не особо-то нужен.
    Ответ написан
    Комментировать
  • Имеет ли смысл писать чат на meteor.js?

    @mantyr
    Пишу много Golang кода с удовольствием:)
    "каждый раз делать запрос к бд, а ведь это реал-тайм" - не факт, так как meteor.js вроде надстройка над node.js, а он запускается в виде сервера и может хранить текущие данные прямо в памяти, а базу использовать только для сохранения на длительное хранение.

    Вы попробуйте, может понравится и сможете написать отличную статью о том через какие препятствия пришлось пройти что бы это всё сделать. Для продакшина node.js/meteor.js для real-time чата не советую из практических соображений, хотя и на них можно сделать нормальные решения.
    Ответ написан
    Комментировать
  • Где ошибка в gulpfile.js?

    @hitag
    Начинающий веб-разработчик.
    Попробую так : root: [__dirname]
    Ответ написан
    Комментировать
  • Как лучше дописать/дополнить чат?

    @amatory10
    Кода стыдиться не надо если ему уделенно достаточно внимания, в любом случае хорошее решение приходит не сразу, трудности возникают и благополучно решаются.
    По поводу совета нужно привыкать к строгой организации кода, т.е. не скидывать все в одну кучу, а структурно распределять исходя из логики приложения. Скажем css, js, html в отдельные папки им нечего делать рядом с серверным кодом, т.е. разделение client and server.
    Ответ написан
    Комментировать
  • Почему не приходят сообщения на клиент (socket.io)?

    copist
    @copist
    Empower people to give
    Тут ошибка
    var input = $('message')


    Надо наверное так
    var input = $('#message')
    Ответ написан
    Комментировать
  • Как написать чат на websocket'ax (javascript)?

    DIITHiTech
    @DIITHiTech
    Fullstack javascript developer
    socket.io
    socket.io/demos/chat
    https://github.com/socketio/socket.io/tree/master/...

    Без этой библиотеки у Вас пока ничего не получится, ведь кроме клиента нужен сервер, который и реализуется этой прослойкой, писать же свой- глупое занятие + что то мне подсказывает что Вам пытаться делать этот велосипед еще рановато.
    Вы можете отказаться только от клиентской прослойки библиотек, которые позволяют примерно эмулировать работу web сокетов в старых браузерах через ajax и более древние техники, но не от сервера. В javascript нету ничего о веб сокетах, с клиентской стороны это интерфейсы браузера, а на nodejs сервере все нужно реализовывать самому, или через те библиотеки, которые Вы не хотите.

    Базис о клиентских сокетах в браузере почитать можно тут:
    https://developer.mozilla.org/en-US/docs/Web/API/W...
    Ответ написан
    Комментировать
  • Что за язык Go, и где его можно хостить?

    @mantyr
    Пишу много Golang кода с удовольствием:)
    Хостить можно где угодно. Но чисто шаринг-хостинги полноценно не подойдут.
    1. на шаринг-хостингах почти никогда нельзя открыть порт для входящих соединений (веб-сервер на Golang уже не запустишь, точнее работать-то он будет, но порт не откроет)
    2. на шаринг-хостингах часто нельзя вызывать fork(), тобишь создавать процессы, что бы Golang самопроизвольно не падал - нужно в коде сознательно запретить вызов fork(), посмотрте описание библиотеки runtime
    3. на шаринг-хостингах Golang можно запустить как и любой другой бинарник, достаточно иметь доступ по консоли, возможность что-то запустить через cron или разрешённый вызов exec и его аналоги в PHP

    С другой стороны, стоимость отличного VPS с SSD на 22 гигабайта, полноценным ядром процессора и 512 мегабайтами оперативки стоит в DigitalOcean 5$...

    В качестве первого языка стоит посмотреть на школьную программу:
    1. Turbo/Borland Pascal
    2. Си/Си++
    3. Лого Миры
    4. Delphi
    5. Ничто не мешает в этот перечень добавить Golang, он отлично вписывается, ведь главные составляющие там есть.
    Плюс обучение программированию - это ещё и алгоритмы и подходы, а никак не фреймворки и hello world странички в интернете... Так что Yii, Drupal и прочие радости PHP мира тут явно не в тему.
    Ответ написан
    Комментировать
  • Что за язык Go, и где его можно хостить?

    @kshvakov
    И, стоит ли его изучать как первый серверный язык ?


    Если не хотите чтоб он был и последним - нет )

    На самом деле Go не очень подходит в роли языка на котором можно учится, Go - это не совсем язык, это инфраструктура

    Если говорить о разработке веба/шедулеров/конверторов etc... то, со временем, на Go это будет у вас получаться быстрее и проще чем на скриптовых языках, тут главное "втянуться" ;)

    Где его хостить ?


    Везде где можно запускать свои бинарники
    Ответ написан
    2 комментария
  • Что за язык Go, и где его можно хостить?

    gadfi
    @gadfi
    https://gamega.org
    как первый однозначно нет.
    у него явно есть будущее, но молодому специалисту кушать хочется уже сегодня, а с посиком работы на нем будет куда сложнее чем на том же php/python
    кстати его основное преимущество которое часто вспоминают в холиварах ─ скорость и экономное потребление памяти, но не стоит забывать что это имеет смысл для реально долгих операций с данными
    поясню ─ если к вам на бэкенд приходят гигабайты данных которые нужно обработать (ладно пусть мегабайты, думаю тоже будет заметно) то go хороший выбор, он сделает это со cскоростью java/skala но при этом в разы меньше съест ресурсов (читал статью где благодаря go заменили 30 серверов на 2)
    Если у вас обычный сайт который ходит в бд и отдает данные на страничку, то благодаря ngnix особой разницы go и php вы не заметите, кроме трудозатрат)) так как количество фреймворков, библиотек сильно меньше. Да есть и орм и многое другое, но все пока молоддое

    Это не минус go, просто не надо воспринимать его как серебряную пулю, ее нет.

    зы анекдот:
    Я редко встречаю go программистов, они быстро умирают с голоду

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

    зыыы повторюсь дабы не вызвать холивар, я не против go и он займет свою нишу, но убийцей php/python чего то еще в ближайшие 10 лет не станет, в it вообще с убийствами плохо, все что уже в энтерпрайзе так просто не убьешь )
    Ответ написан
    44 комментария
  • Что за язык Go, и где его можно хостить?

    DrunkMaster
    @DrunkMaster
    Как первый серверный не стоит, PHP, Python или RoR подойдут для этого лучше. Он компилируемый, на сервере после внесения каждой правки придётся перекомпилировать. Скриптовые языки удобнее имхо. Моё мнение что Go это более удобная, легко поддерживаемая альтернатива C-подобным языкам.
    P.S. Не гонитесь за модой ;)
    Ответ написан
    6 комментариев
  • Что за язык Go, и где его можно хостить?

    shpaker
    @shpaker
    Вольный хлебопашец
    Мне всегда казалось что по нему холливаров просто тьма. Чего только стоит последний радио-т. Пишу не нём маленькие сервисы с web мордой для работы. Мне оч нравится. С детства испытываю недомогания при взгляде на пхп, теперь с радостью пишу на голанге.
    Ответ написан
    2 комментария
  • React.js как подключить json файл с данными?

    Laiff
    @Laiff
    Front-end developer
    var libraries = require('./libraries.json');
    А также json-loader для webpack
    Ответ написан
    2 комментария
  • Будет ли нужен coffeescript, когда уже есть ES-2015?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Все дело вкуса. Однако все-таки ES2015 — это стандарт и рано или поздно он будет поддерживаться браузерами, чего не скажешь обо всем остальном.

    TypeScript старается быть надстройкой над JS, т.е. любой JS это валидный TS.
    ClojureScript — это LISP и этим все сказано:)

    Камешек в огород — часто библиотекам, написанным на CS, ставят это в минус.
    Ответ написан
    9 комментариев
  • Почему не работает css?

    @Wheelie
    Названия класса начинаются с цифры.
    Ответ написан
    1 комментарий
  • Как лучше создавать класс в javascript?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    в чём же разница в new 'класс' и object.create 'класс',


    Object.create не вызывает конструктор, именно по этой причине так удобно при помощи оного выставлять в качестве прототипа другие объекты.

    создавать классы, в прототипном или функциональном стиле ?

    в js нет классов. В любом случае - лучше методы объявлять в прототипе.

    https://babeljs.io/docs/learn-es2015/#classes
    Ответ написан
    Комментировать
  • Автоматизация постов в jekyll?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Что касается ссылок:
    Link jekyllrb.com/docs/permalinks
    Config file: jekyllrb.com/docs/configuration

    что касается генерации нового файла статьи: (rake задача из octopress)
    desc "Begin a new post in #{source_dir}/#{posts_dir}"
    task :new_post, :title do |t, args|
      if args.title
        title = args.title
      else
        title = get_stdin("Enter a title for your post: ")
      end
      raise "### You haven't set anything up yet. First run `rake install` to set up an Octopress theme." unless File.directory?(source_dir)
      mkdir_p "#{source_dir}/#{posts_dir}"
      filename = "#{source_dir}/#{posts_dir}/#{Time.now.strftime('%Y-%m-%d')}-#{title.to_url}.#{new_post_ext}"
      if File.exist?(filename)
        abort("rake aborted!") if ask("#{filename} already exists. Do you want to overwrite?", ['y', 'n']) == 'n'
      end
      puts "Creating new post: #{filename}"
      open(filename, 'w') do |post|
        post.puts "---"
        post.puts "layout: post"
        post.puts "title: \"#{title.gsub(/&/,'&')}\""
        post.puts "date: #{Time.now.strftime('%Y-%m-%d %H:%M:%S %z')}"
        post.puts "comments: true"
        post.puts "categories: "
        post.puts "---"
      end
    end

    Ну или bash/cmd скрипт который за вас это сделает.
    Ответ написан
    Комментировать
  • Как поменять бинды в vim'e?

    1) Любые кнопки и комбинации можно задавать http://vim.wikia.com/wiki/..
    3) NERDTree открывается в своем окне (в терминологии вима). Переключение между окнами делается через Ctrl + w + h/l/j/k.

    Советую пройти vimtutor, такие вопросы отпадут.
    Ответ написан
    Комментировать
  • Объясните, зачем нужна анонимные самовызов. функции и замыкания?

    Засорять глобальную область видимости нехорошо, потому что сложно следить, чтобы эти имена не пересекались в разных файлах, не использовались и не перезаписывались там, где не нужно. Например, если нужно вывести алертом сумму двух чисел numberOne и numberTwo:
    // глобальная функция add складывает все элементы массива
    function add(arr) {
      return arr.reduce(function(a, b) {return a + b})
    }
    
    (function(a, b) {
      // локальная функция add складывает два числа
      function add(a, b) {
        return a + b
      }
    
      var sum = add(a, b)
    
      alert(sum)
    })(numberOne, numberTwo)

    Этот пример, конечно, искусственный (потому что на самом деле alert(numberOne + numberTwo)), но если заменить сложение и алерт на какие-то более-менее объёмные вычисления, то тот факт, что мы не перезаписываем глобальные функции (как в примере было бы с функцией add, если бы мы не обернули код в анонимную функцию), не засоряем глобальную область видимости счётчиками циклов и т. д., может предотвратить некоторые ошибки.

    На счёт замыканий -- например, нам нужно написать функцию, которая принимает ID HTML элемента и строку и добавляет ему event listener, который при нажатии на элемент алертит эту строку:
    function foo(id, msg) {
      document.getElementById(id).addEventListener("click", function() {
        alert(msg)
      }
    }

    Здесь функция, которую мы передаём в addEventListener, и которая будет выполнятся при нажатии на элемент, берёт значение переменной msg из области видимости внешней функции -- это и есть замыкание.

    Ещё один пример с замыканием:
    function add(a) {
      return function(b) {
        return a + b
      }
    }
    
    add(5)(6)  // 11

    Возвращаемая функция берёт значение переменной a из области видимости внешней функции.
    Ответ написан
    7 комментариев