• Express Mysql, как записать пароль в SHA1?

    @romaro
    Рассмотрите этот метод из пакета crypto.
    Ответ написан
    Комментировать
  • Как создаются варианты одного товара в БД?

    @romaro
    Я в свое время разделил сущности товарной карточки (GOODS) и товарной позиции (PRODUCT). Товарная позиция является объектом складского учета (т.е. физически находится на складе), а товарная карточка всего лишь группирует эти позиции удобным способом и хранит фотографии, название, но не характеристики.

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

    Поэтому при выгрузке из учетной системы я создавал третью сущность (ITEM), которая "виртуализировала" таблицу GOODS_PRODUCT. Таким образом, на сайте магазина у меня были GOODS и ITEM.goods, причем для ITEM.product был настроен уникальный индекс (для одного магазина нельзя было создать две карточки, на которые ссылается одна и та же товарная позиция).

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

    То есть важно понимать, что пользователь в конечном счете выбирает именно товарную позицию, а карточка - не более, чем страничка на сайте.
    Ответ написан
    Комментировать
  • В чем отличие Pool и Client конструкторов в NPM пакете pg?

    @romaro
    Дополню, что про пулы хорошо написано на этой странице из документации по node-postgres.
    Ответ написан
  • Можно ли настроить Вебпак на выборочное подключение скриптов?

    @romaro Автор вопроса
    Вроде бы смог решить свою задачу при помощи плагина html-webpack-injector и настройки чанок. Пример кода:
    const testArr2 = [
        new HtmlWebpackPlugin({
            template: `./templates/pages/test.ejs`,
            filename: `./views/test.njk`,
            chunks: ['index', 'chunk1']
        }),
        new HtmlWebpackInjector(),
        new HtmlWebpackPlugin({
            template: `./templates/pages/test2.ejs`,
            filename: `./views/test2.njk`,
            chunks: ['index', 'chunk2']
        }),
        new HtmlWebpackInjector()
    ]
    
    export default {
        context: path.resolve(__dirname, 'source'),
        entry: {
            index: './entry.js',
            chunk1: './templates/pages/chunk1.js',
            chunk2: './templates/pages/chunk2.js'
        },
        output: {
            filename: '[name].bundle.js',
            path: path.resolve(__dirname, 'public'),
        },
        plugins: [
            new CleanWebpackPlugin(),
            new MiniCssExtractPlugin({
                filename: 'style.css'
            }),
            ...testArr2
    < some code >


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

    В связи с этим вопрос по минификации: как запретить лоудеру бабеля (babel-loader) менять названия идентификаторов в коде при компиляции в режиме production? Как я понимаю, это единственный выход.

    Попробовал применить в настройках, не помогло:
    {
                    test: /\.m?js$/,
                    exclude: /(node_modules|bower_components)/,
                    use: {
                        loader: 'babel-loader',
                        options: {
                            minified: false
                        }
                    }
                },
    Ответ написан
    Комментировать
  • Как встроить html разметку через lodash в webpack?

    @romaro
    https://stackoverflow.com/questions/59070216/webpa...

    <%= require('./../components/header.html').default %>
    Ответ написан
    Комментировать
  • Где смотреть результат выполнения запроса в PL/SQL Developer?

    @romaro
    Там нужно открыть SQL Window, затем ввести запрос, нажать F8 и внизу должна подгрузиться выборка (по умолчанию первые 20 строк кажется).

    6127c7ace50a5896893102.jpeg
    Ответ написан
    Комментировать
  • Существует ли для Oracle удобный инструмент для работы с базой по типу phpMyAdmin для MySQL?

    @romaro
    PL/SQL Developer, но он больше для написания и отладки кода, к тому же платный. Однако для этих задач я лучшего инструмента не видел.
    Ответ написан
    Комментировать
  • Как настроить отдельный интернет для каждой учетной записи Windows?

    @romaro Автор вопроса
    А что, если:
    1) поднять на роутере отдельный PPPoE-сервер для каждого провайдера?
    2) На каждом сервере создать по одной учетной записи — для того пользователя, который должен выходить в сеть через данного провайдера
    3) на клиентской машине для каждого профиля создать отдельное PPPoE-подключение, запретив его использование другим пользователям?

    Получается, что интернета "по кабелю" нет и каждый пользователь, чтобы выйти в сеть, должен авторизоваться через то PPPoE, которое ему доступно.

    Это сработает для "нативного" разграничения провайдеров между учетными записями Windows?

    60a2261ccea02953870295.jpeg
    Ответ написан
    Комментировать
  • Как бэкапить БД Oracle?

    @romaro
    Ваш вопрос скорее о миграции данных: https://blogs.oracle.com/russia/19c-migration
    Ответ написан
    Комментировать
  • Почему не работает отправка почты с Mailgun?

    @romaro Автор вопроса
    Проблему решил.
    Дело в том, что mailgun-js по умолчанию обращается к серверу api.mailgun.net, а я зарегистрировал домен в европейской зоне, которая обслуживается другим сервером: api.eu.mailgun.net. Поэтому в конструктор класса нужно было передавать параметр host:


    `Mailgun` object constructor options:

    * `apiKey` - Your Mailgun API KEY
    * `publicApiKey` - Your public Mailgun API KEY
    * `domain` - Your Mailgun Domain (Please note: domain field is `MY-DOMAIN-NAME.com`, not https://api.mailgun.net/v3/MY-DOMAIN-NAME.com)
    * `mute` - Set to `true` if you wish to mute the console error logs in `validateWebhook()` function
    * `proxy` - The proxy URI in format `http[s]://[auth@]host:port`. ex: `'proxy.example.com:8080'`
    * `timeout` - Request timeout in milliseconds
    * `host` - the mailgun host (default: 'api.mailgun.net'). Note that if you are using the EU region the host should be set to 'api.eu.mailgun.net'
    * `protocol` - the mailgun protocol (default: 'https:', possible values: 'http:' or 'https:')
    * `port` - the mailgun port (default: '443')
    * `endpoint` - the mailgun host (default: '/v3')
    * `retry` - the number of **total attempts** to do when performing requests. Default is `1`.
    That is, we will try an operation only once with no retries on error. You can also use a config
    object compatible with the `async` library for more control as to how the retries take place.
    See docs [here](https://caolan.github.io/async/docs.html#retry)
    * `testMode` - turn test mode on. If test mode is on, no requests are made, rather the request options and data is logged
    * `testModeLogger` - custom test mode logging function
    Ответ написан
    Комментировать
  • Как подружить ejs с VS Code?

    @romaro Автор вопроса
    В общем, мне помог плагин Pretty Formatter.
    Ответ написан
    Комментировать
  • VK API: Captcha needed?

    @romaro
    Правильно ли я понимаю, что если использовать метод-обертку execute, в который можно добавить до 25 вызовов PHOTOS.save, то можно кратно сократить кол-во возвращаемых капч, т.к. в случае правильного решения капчи будет создано сразу 25 фотографий в альбоме вместо того, чтобы вводить капчу для каждой фотографии?
    Ответ написан
    Комментировать
  • Как дать права на постинг в Инстаграм?

    @romaro Автор вопроса
    Пума Тайланд, можно. Только не понятно, почему у одних эта опция есть, а у меня нет:

    5b7d976547e63844482993.png
    Ответ написан
  • Куда chkdsk в Windows Server 2003 пишет лог?

    @romaro Автор вопроса
    Это я нагуглил )) Но там просто информация о событиях, данных о количестве проверенных/битых секторов нет
    Ответ написан
  • Как побороть ошибку ORA-12514?

    @romaro Автор вопроса
    Вот полный текст из PG_smon_2713.trc
    @2|2|Au-83hmi1"2713|PG|
    6/Au-83hmi1~31v
    6?4An83hmi1~E9K
    7?vYI~gOG
    7?Jm2~V8L
    B?3R24~-VPT
    9Hs0c$a1incident_id`69:dbgrimbid_begin_incdump*dbgrim.c*incident_file*32D1aWD6D3hmi1"
    C4001$4H1uB5"
    TK$01082"
    EK006$Error Stack*130f"
    C4001$3u1d"
    UK$030S3"
    J?wgq5~0I1
    7?nDm+H~V1K
    5N00g$4069:V5|kcdRafpX"
    C4001$4H1fT1"
    TK$010dF"
    EK002$130cF"
    C4001$3u1DV"
    UK$030cF"
    J?ypt2~TI1
    7?brY-H~21K
    3?NQ3~1T
    R?-f3~OFM11
    5N00g$4069:e5|kfN5ap-T"
    C4001$4H1Ej1"
    TK$010fT1"
    EK002$130cF"
    C4001$3u1cF"
    UK$030cF"
    J?kAa4~TI1
    J?Ad~101
    3?G-S-H~1T
    2?JfNOvhmi1~0K
    5N00g$4069:u5|kcdRa8481"
    C4001$4H1B8"
    TK$010I5"
    EK002$13092"
    C4001$3u1x6"
    UK$030d4"
    J?4R54~0I1
    7?oNlyH~V1K
    B?AL5~e39M
    5N00g$4069:f2|k5aIaUr11"
    C4001$4H1y"
    TK$010A"
    EK002$130M"
    C4001$3u15"
    UK$030B"
    J?zq02~0I1
    7?HeYyH~21K
    R?pq5~u5FZ3
    R?lgB1~5VCG1
    N?4d5~u1I1
    7?bFiyH~V1K
    B?SG5~EbF1
    R?ulw~q2CG1
    N?KU3~u1I1
    7?EDhyH~V1K
    B?3+3~vKD1
    B?IJ3~5+D1
    N?1l61~bJG1
    N?kt6~u1I1
    7?-2QyH~21K
    3?4m2~1T
    R?rPD~adRG1
    N?MqG~u1I1
    7?dQHzH~V1K
    R?Tp4~g+DB1
    R?rPD~ncDG1
    N?-R2~u1I1
    J?P-~111
    3?U5YyH~1T
    2?wo7Etjmi1~0K
    B?gK7~pDE1
    R?n2w~oPDG1
    N?bu2~u1I1
    7?PGLyH~31K
    R?8e11~jdRG1
    N?Ix2~u1I1
    7?MFUyH~W1K
    R?gH3~mACB1
    5N00g$4069:m2|kLRFasxL"
    C4001$4H1cF"
    TK$010dF"
    EK002$130cF"
    C4001$3u1cF"
    UK$030dT1"
    J?4to4~0I1
    7?bbKyH~W1K
    5N00g$4069:23|kGdRaiA31"
    C4001$4H1S8"
    TK$010L7"
    EK002$130b6"
    C4001$3u1s8"
    UK$030G"
    J?Yb44~0I1
    7?N9PyH~31K
    5N00g$4069:23|kAeRaj+H1"
    C4001$4H1dF"
    TK$010"
    EK002$1308"
    C4001$3u1jI"
    UK$030C1"
    J?Up64~TI1
    7?psZyH~W1K
    5N00g$4069:23|kGdRaxf91"
    C4001$4H1e7"
    TK$010n6"
    EK002$130s8"
    C4001$3u1N5"
    UK$030m4"
    Ответ написан
    Комментировать