• Параллелизм и Node.js?

    @EpicUsaMan Автор вопроса
    По поводу Redis согласен, возможно я просто пытался починить то, что и так работает избежав блокирования потоками.

    Но там не менее. Переписывать на Go опять же таки то, что работает, а тем более в целом на незнакомый мне язык. Ну вряд ли разумное решение.

    Node.js хорошо работает параллельно, не считая socket.io.

    Да и в целом, вон там завезли SharedArrayBuffer и Atomics.
  • Как выполнить функцию из файла вызванную инлайновым методом onClick?

    @EpicUsaMan
    Дмитрий Поляков, если у вас несколько одинаковых id на странице -- тогда вполне понятно почему.
  • ReactHotLoader входит в бесконечный цикл?

    @EpicUsaMan Автор вопроса
    Антон Спирин, проблема оказалось в preact-е, где-то в одном из последних выпусков они потеряли совместимость.
  • ReactHotLoader входит в бесконечный цикл?

    @EpicUsaMan Автор вопроса
    Антон Спирин,
    const path = require('path'),
      webpack = require('webpack'),
      ExtractTextPlugin = require('extract-text-webpack-plugin'),
      WriteFilePlugin = require('write-file-webpack-plugin');
    
    var plugins, cssloaders, jsloaders, mainjs, entry;
    
    if (process.env.NODE_ENV === 'development') {
      plugins = [
        new webpack.HotModuleReplacementPlugin(),
        new webpack.optimize.CommonsChunkPlugin({
          children: true, // necessary for splitting children chunks 
          async: true // necessary for async loading chunks 
        }),
        new WriteFilePlugin({})
      ];
      
      mainjs = [
        //'react-hot-loader/patch',
        'webpack-hot-middleware/client',
        './src/index.js'
      ];
      
      entry = {
        'main.js': mainjs
      };
    
      cssloaders = ['css-loader', 'ruby-sass-loader?outputStyle=compressed&compass=true&cwd=' + path.resolve(__dirname, './'), {
          loader: 'sass-resources-loader',
          options: {
              resources: path.resolve(__dirname, './src/scss/index.scss')
          }
      }];
    
      jsloaders = ['react-hot-loader/webpack', 'babel-loader'];
    } else {
      plugins = [
        new webpack.NoErrorsPlugin(),
        new webpack.optimize.OccurrenceOrderPlugin(),
        new webpack.optimize.DedupePlugin(),
        new webpack.optimize.ModuleConcatenationPlugin(),
        new webpack.optimize.CommonsChunkPlugin({
          children: true, // necessary for splitting children chunks 
          async: true // necessary for async loading chunks 
        }),
        new webpack.DefinePlugin({
          'process.env': {
            'NODE_ENV': JSON.stringify('production')
          }
        }),
        new ExtractTextPlugin({
          filename: 'style.css',
          allChunks: true
        })
      ];
      
      mainjs = './src/index.js';
      
      entry = {
        'main.js': mainjs,
        'style.css': './src/scss/index.scss'
      }; 
    
      cssloaders = ExtractTextPlugin.extract({
        use: [{
          loader: 'css-loader',
          options: {
            minimize: true
          }
        }, {
          loader: 'ruby-sass-loader?outputStyle=compressed&compass=true&cwd=' + path.resolve(__dirname, './')
        }, {
          loader: 'sass-resources-loader',
          options: {
              resources: path.resolve(__dirname, './src/scss/index.scss')
          }
        }]
      });
    
      jsloaders = ['babel-loader'];
    }
    
    module.exports = {
      devtool: process.env.NODE_ENV === 'production' ? false : 'cheap-module-eval-source-map',
      entry: entry,
      resolve: {
        alias: {
          react: 'preact-compat',
          'react-dom': 'preact-compat',
          "preact-compat": "preact-compat/dist/preact-compat"
        }
      },
      output: {
        path: path.join(__dirname, 'dist'),
        filename: '[name]',
        publicPath: '/dist/',
        hotUpdateChunkFilename: 'hot/hot-update.js',
        hotUpdateMainFilename: 'hot/hot-update.json',
        chunkFilename: '[id].js'
      },
      plugins: plugins,
      module: {
        loaders: [{
            test: /\.(scss|sass|css)$/,
            loaders: cssloaders
        }, {
            test: /\.jsx?$/,
            loaders: jsloaders,
            include: path.join(__dirname, 'src')
        },
          {
            test: /\.woff2?$|\.ttf$|\.eot$|\.svg$|\.png|\.jpe?g|\.gif$/,
            loader: 'file-loader'
        }]
      }
    };


    Закомментированная строка в entry, ибо результат тот же, что и с import. Подумал что с import будет нагляднее.
  • Input valid\invalid type=password?

    @EpicUsaMan Автор вопроса
    Алексей Струков: синий == валидный или фокус (просто в первом примере сделал green)
    красный == не валидный
  • Input valid\invalid type=password?

    @EpicUsaMan Автор вопроса
    Алексей Струков: мне он необходим, проблема только в левой части картинки. Заполненные формы не должны выглядеть как не заполненные, так же как и активные формы. (читать формы как инпуты)
  • Input valid\invalid type=password?

    @EpicUsaMan Автор вопроса
    Слева до любого действия на сайте, справа после.
    На более рабочем примере, используются те же input:valid и input:focus
    8c56d53e23a742819c2cda6438ebdfbf.png
  • Input valid\invalid type=password?

    @EpicUsaMan Автор вопроса
    PS. Чтобы заработал type=password достаточно нажать любую кнопку в любом месте на сайте.
    Какой-то дикий бред
  • MongoDB: Как вытащить диалоги из сообщений?

    @EpicUsaMan Автор вопроса
    Очередность указана (sort) через _id ($sort: { _id: -1 })
  • AJAX и выгрузка скриптов?

    @EpicUsaMan Автор вопроса
    Oh shi... Ну я так понял надо задать в jquery для event-ов namespace-ы и отключать через off, при переходе же наоборот, через функцию обновлять, а для socket.io делать disconnect и создавать новый через функцию.
  • Socketio dynamic namespace?

    @EpicUsaMan Автор вопроса
    И? Вопрос лежит в другом ключе.

    Мне нужно быстро подключаться и отключаться от определенных namespace.
  • Параллельный socket.io?

    @EpicUsaMan Автор вопроса
    Спасибо, добрый человек. О существовании Cluster вообще не знал.

    Насколько я понял надо взять код из примера cluster, в "else" поместить весь код сокетов, ну и там уже просто стартануть через pm2.

    Один только вопрос. Будет использоваться одна область памяти для третьего массива (это массив пользователей из бд, который запрашивается один раз при входе пользователя на сайт, в дальнейшем в массив clients нужного пользователя просто добавляются socket.id, ну и при выходе socket.id убирается из clients пользователя, данные же в массиве модифицируются сокетами, которые указаны в clients, это сделано, чтобы уменьшить кол-во запросов в бд, потребляемую память и убрать неприятную возможность запроса устаревших данных из бд, если один пользователь открыл несколько вкладок)?
  • Не верный рассчет соотношения сторон?

    @EpicUsaMan Автор вопроса
    Убрал intval и ничего не изменилось.

    1645:905 (1.81767955801) соотношение сторон вышло при значении 1.77777777778 (16:9) вместо 1.77272727273 при том, что должно было выйти 1645:925 (или 926 высота, не суть важно)

    Да и за счет intval-а разница должна быть в от силы 1 пиксель, а тут целых 20
  • PDO SQL QUERY PHP5?

    @EpicUsaMan Автор вопроса
    shagguboy: https://docs.oracle.com/cd/F49540_01/DOC/server.81...

    Доки оракла говорят, что вы ошибаетесь.

    А по поводу базы -- все верно, ведь все остальные запросы работают.
  • PDO SQL QUERY PHP5?

    @EpicUsaMan Автор вопроса
    shagguboy: в том и дело, что ничего. 00000 возвращает при удачном выполнении
  • PDO SQL QUERY PHP5?

    @EpicUsaMan Автор вопроса
    Ровно тот же запрос в MySQLI работает
  • PDO SQL QUERY PHP5?

    @EpicUsaMan Автор вопроса
    Ничего не произошло
    Собственно, что вернуло errorInfo()
    Array
    (
    [0] => 00000
    [1] =>
    [2] =>
    )
  • Fetch_assoc возвращает строки, вместо чисел?

    @EpicUsaMan Автор вопроса
    Есть аналогичные аттрибуты для mysqli?
  • PHP websocket error?

    @EpicUsaMan Автор вопроса
    Анатолий: Суть в чем, догадался это сделать сам и после накатывания var_export все заработало. Что за магия пэхэпэ?