• Почему не работает условие ИЛИ?

    @alexalexes
    То что вы пытаетесь написать:
    if (question === 1||3)
    Значит: "условие ИЛИ какое-то число, эквивалентно true". То есть 3 - это эквивалент true. Ноль будет эквивалентом false. Посмотрите, чему будут эквиваленту отрицательные числа, мне лень смотреть документацию или пробовать консоль.

    В вашем случае, решение будет выглядеть так:
    if (question === 1|| question === 3)
    Если охота использовать перечисление в надежде сократить условие, то это может выглядеть так:
    if ([1,3].indexOf(question) > -1)
    Ответ написан
    Комментировать
  • Нужна помощь с таблицой VUE?

    @alexalexes
    Вы сформируйте структуру данных так, чтобы ее можно было удобно обходить.
    Например, так:
    [
      {
        header_title: "Название некоторого длительного процесса",
        date_begin: , // начало процесса, вычисляется предварительной пробежкой по всем заявкам, поиск минимума
       date_end: , //  конец процесса, вычисляется предварительной пробежкой по всем заявкам, поиск максимума
    appls: [
                 {title: "ЗАЯВКА", date_begin, date_end},
                 {title: "ЗАЯВКА", date_begin, date_end},
        ]
      }
    ]

    И вообще, отпадет вопрос как рисовать таблицу (двумя вложенными v-for).
    Ответ написан
  • Почему в Word документ при печати меняется?

    @alexalexes
    Причин может быть куча:
    - область печати на бумаге, размер бумаги, не того размера, что в электронном документе;
    - драйвер принтера конвертирует векторные составляющие документа в низкое разрешение dpi, появляются искажения.
    - неверно конвертируются непечатающиеся символы шрифта.
    В любом случае, проверяйте в окне предпросмотра при печати, как будет выглядеть документ на выходе. Поправляйте режим печати или изменяйте свойства шрифта на проблемных строках.
    Ответ написан
    1 комментарий
  • Есть ли сниппеты в word?

    @alexalexes
    В продуктах MS это называется макросы.
    Можно создать скрипт, сохранить его в шаблоне документа или в документе и привязать его выполнение к кастомному сочетанию горячих клавиш.
    PS: Все ваши документы становятся "подозрительные" для других пользователей. Так как содержат макрос.
    Ответ написан
  • Восстановление sql базы данных из под wordpress плагином?

    @alexalexes
    SQL файлы уже сами по себе самодостаточны и содержат все необходимые запросы для восстановления базы.
    И выполнять их можно не только в дружественном интерфейсе PhpMyAdmin, но и в любой среде, которая может подключиться к базе и сделать запрос.
    Вы можете использовать хоть командную строку, хоть php для этих целей.

    PS: Просто как новичку нужно разрушить в голове миф, что восстановление базы - это какая-то магия с бинарными файлами, которая делается в обход механизмов СУБД. Нет, восстановление - это такая же операция, которая делается определенным набором типичных запросов, не ломая порядок работы СУБД. Достаточно открыть SQL файл в текстовом редакторе, чтобы в этом убедиться.
    Ответ написан
    Комментировать
  • Можно ли обойти ограничение на количество подключение к провайдеру?

    @alexalexes
    Арендуете VDS или комп у друга/на работе, лишенного таких технических ограничений на канале связи. Делаете из него прокси-сервер. Устанавливаете с ним защищенное соединение. Радуетесь жизнью без тех. ограничений на число потоков.
    Ответ написан
  • Из-за чего может быть проблема?

    @alexalexes
    У вас артефакты видеокарты.
    Может быть вызванные перегревом чипов видеопроцессора или его памяти.
    Первым делом убеждаемся, что кулер на видеокарте в исправном состоянии, радиатор не перекошен, поддерживающие шпильки/винты радиатора на месте, не сломаны, держат его ровно.
    Радиатор не забит пылью, плата и ее компоненты не загажены пылью и грязью.
    Если что-то не так, то чистите от пыли, заменяете термопасту, неисправный кулер, устанавливаете правильно радиатор.
    Если после этого нет эффекта, то берете дешманскую видеокарту за 300 руб. Ставите ее и драйвера в системе.
    Убеждаетесь, что она работает, что это не софтовая проблема.
    Вашу основную видеокарту тестите еще раз на другом системном блоке, если и там появляются артефакты, то карточку прогреваете феном. Если и это не помогло, то пациент скорее мертв чем жив. Нужна замена.
    Ответ написан
    1 комментарий
  • Как вывести все изображения в цикле for?

    @alexalexes
    id для шаблона заливки круга должен быть для каждого элемента списка свой, так как выражение "url(#pattern)" оперирует css-селектором #pattern на всем html-документе и подхватывает первый попавшийся шаблон в первом попавшимся svg.
    В вашем случае, первый id становится валидный и применяется в других svg, а все последующие id -не валидные с точки зрения всего документа html.
    Для этих целей в цикле for используйте index. И необходимо сделать более уникальным id, нужно добавить каких-нибудь слов характеризующих его назначение, например, circle_avatar_pattern_{{ index }}.
    {% for (index, profile) in profile_list %}
        <svg width="250" height="250">
            <pattern id="circle_avatar_pattern_{{ index }}" width="100%" height="100%">
                <image href="{{ profile.avatar.url }}" width="200" height="200" preserveAspectRatio="xMidYMin slice"></image>
            </pattern>
            <circle cx="125" cy="125" r="100" fill="url(#circle_avatar_pattern_{{ index }})"></circle>
        </svg>
            <h2><a href="{{ profile.get_absolute_url }}">{{ profile.user }}</a></h2>
        {% endfor %}

    PS: Установленной среды Python у меня нет, код не проверял, проверяйте у себя.
    Ответ написан
    2 комментария
  • Правильно ли написано логическое выражение?

    @alexalexes
    Раз вам не интересен аналитический метод, можете применить эмпирический.
    Для каждого состояния переменных ABCD считаете F как в схеме, так и в своем выражении.
    Если F одинаковые получаются. Значит, выражение эквивалентно схеме.
    A B C D F
    0 0 0 0 ?
    0 0 0 1 ?
    0 0 1 0 ?
    0 0 1 1 ?
    0 1 0 0 ?
    0 1 0 1 ?
    0 1 1 0 ?
    0 1 1 1 ?
    1 0 0 0 ?
    1 0 0 1 ?
    1 0 1 0 ?
    1 0 1 1 ?
    1 1 0 0 ?
    1 1 0 1 ?
    1 1 1 0 ?
    1 1 1 1 ?
    Ответ написан
    Комментировать
  • Как сгенерировать datetime?

    @alexalexes
    Приводите склеенную строку $date_time.$time и параметр функции STR_TO_DATE к одинаковому формату времени.
    Делаете с помощью bind_param функций привязку склеенной строки на месте знака вопроса.
    insert into your_table (your_field)
    values (  STR_TO_DATE(?, '%d.%m.%Y %h:%i')  )

    Выполняете этот запрос, он вставит в таблице your_table свойство your_field в формате datetime.
    Дополнено:
    $sth = $dbh->prepare("insert into your_table (your_field)
    values (  STR_TO_DATE(:your_datetime_string, '%d.%m.%Y %h:%i')  )");
    $sth->bindParam(':your_datetime_string', $date_time.' '.$time, PDO::PARAM_STR);
    $sth->execute();

    Ссылку на подключение к базе $dbh подготавливаете согласно PDO.
    Ответ написан
  • Как заменить ASCII символ?

    @alexalexes
    Можно, используйте функцию rawurlencode для получения валидного url.
    Ответ написан
  • Как сосчитать повторяющиеся буквы?

    @alexalexes
    Вариант с минимальными изменениями
    function RST(str){
    let arr = str.split('');
    let num = 1;
    let result = '';
    for(let i = 1; i < arr.length; i++){
      if(arr[i] == arr[i-1]){
        num++;
      } else {
        result += arr[i-1] + num; // тут была ошибка
        num = 1;
      }
    }
    // Нужно допечатать последнее накопление num
    if(arr.length > 0)
     result += arr[arr.length-1] + num;
    return result;
    }
    Ответ написан
    Комментировать
  • Как мне с одной базы с таблицы скопировать в другую базу таблицы?

    @alexalexes
    1. Используете импорт/экспорт базы/таблиц в каком-нибудь инструменте, например, phpmyadmin.
    или
    2. Пишете скрипт с двумя коннектами. По первому коннекту делаете порционную выборку, по второму - вставляете результат выборки из первого коннекта.
    Ответ написан
    Комментировать
  • Как склеить много фотографий в одну картинку?

    @alexalexes
    Самый бюджетный вариант коллажа с использованием браузера.
    1. Копируете этот код и сохраняете в файле index.html;
    2. Создаете каталог photo рядом с файлом index.html и закидываете туда уже пронумерованные по порядку фото.
    3. Поправляете параметры:
    а) В селекторе "table tr td img" задаете width и height - размер одной миниатюры в коллаже.
    б) Указываете photo_count - кол-во фоток в каталоге photo.
    в) Указываете col_count - кол-во фоток в одном ряду коллажа.
    г) Указываете start_pic_number - с какого номера начинается нумерация фоток.
    д) Указываете filename_counter_size - размерность нумерации фоток, если идет 01, 02, 03 - то размерность 2,
    если, например 00001, 00002, 00003, то размерность 5.
    е) Задаете принцип формирования имени файла в filename.
    Если расширение у вас не jpg, а например png, то строка будет выглядеть так:
    var filename = filename_counter + '.png';
    Если в имени файла есть какие-то постоянные символы, кроме счетчика, например они именуются DSC_0001.JPG, то имя файла будет формироваться так:
    var filename = 'DSC_' + filename_counter + '.JPG';
    Имя файла чувствительно к регистру символов!
    ж) Корректируюете путь к файлу относительно страницы index.html, если требуется.
    var filepath = 'photo/' + filename;
    Фрагмент 'photo/' задает каталог с фотками.
    Следует избегать именования каталога и фоток кириллицей.
    4. Открываете index.html в браузере.
    5. Если файлов много, то ждете окончания открытия страницы. Зависит от производительности компа, свободной оперативной памяти.
    6. Если все в порядке, то миниатюры отобразятся. Это значит, что путь задан верно для фоток и фотки пронумерованы правильно и компу хватило ресурсов отобразить коллаж.
    7. Делаем скриншот всей страницы:
    Инструкция для браузера Google Chrome.
    Ctrl+Shift+I — войти в режим разработчика.
    Ctrl+Shift+M — нажать в нем на кнопку эмуляции просмотра в мобильных устройствах.
    Нажать на кнопку меню в окне эмулации (см. в правый верхний угол страницы) и выбрать пункт «Capture full size screenshot».
    После некоторого времени браузер "закачает" некий файл изображения.
    Это и будет конечный результат - коллаж.
    <html>
      <head>
        <style>
          html, body
          {
            margin: 0;
            padding: 0;
          }
          table
          {
            border: none;
          }
          table tr td img
          {
            width: 400px;
            height: 300px;
          }
          table tr td p
          {
            font-size: 10pt;
            text-align: center;
            margin-top: 0;
            margin-bottom: 0;
          }
        </style>
      </head>
      <body>
       <table id="container">
       </table>
       <script>
          function gen_collage()
          {
            var photo_count = 10; // кол-во фото в каталоге (нужно задать)
            var col_count = 5; // кол-во фото в одной строке коллажа (нужно задать)
            var row_count = photo_count / col_count + (photo_count % col_count > 0 ? 1 : 0); // вычисляем, сколько строк для генерации коллажа потребуется
            var start_pic_number = 1; // индекс первой фотки коллажа (если файлы начинаются, например, с 01.jpg, то нужно поставить 1)
            var filename_counter_size = 2; // размер счетчика с ведущими нулями, если поставить 2, то будет генерировать 01, 02, 03 и тд.
            var cur_pic_number = start_pic_number; // номер текущей фотки
            var table_inner = ''; // содержимое таблицы коллажа
            for(var i = 0; i < row_count; i++)
            {
              var row_pictures_inner = '<tr>'; // строка коллажа
              for(var j = 0; j < col_count; j++)
              {
                row_pictures_inner += '<td>'; // ячейка коллажа
                if(cur_pic_number - start_pic_number < photo_count)
                {
                  var filename_counter = ('000000000' + cur_pic_number).substr(-filename_counter_size); // счетчик с ведущими нулями
                  var filename = filename_counter + '.jpg'; // имя файла на основе счетчика (сейчас генерирует 01.jpg, 02.jpg и тд.)
                  var filepath = 'photo/' + filename; // путь к файлу (сейчас задан относительный путь, файлы нужно поместить в каталог photo, index.html должен лежать рядом с каталогом photo)
                  row_pictures_inner += '<div><img src="' + filepath + '"/><p>' + filename + '</p></div>'; // содержимое ячейки коллажа
                }
                row_pictures_inner += '</td>';
                cur_pic_number++;
              }
              row_pictures_inner += '</tr>';
              table_inner += row_pictures_inner;
            }
            document.getElementById('container').innerHTML = table_inner;
          }
          gen_collage();
       </script>
      </body>
    </html>
    Ответ написан
    Комментировать
  • Вытащить из json значение?

    @alexalexes
    Проблема обойти невалидное название свойства (так как используется дефис).
    Используем магию именования свойства класса через переменную.
    $recaptcha_property_name = 'error-codes';
    echo $recaptcha->$recaptcha_property_name[0];
    Ответ написан
    2 комментария
  • Как получить товары сразу из нескольких категорий?

    @alexalexes
    А в чем сложность?
    Берем таблицу товаров (goods), подключаем таблицу категорий (category), по parent_id получаем товары одной категории родителя.
    select distinct g.*
    from goods g
    join category c on c.id = g.category_id  
                            and c.parent_id = 34

    Если у вас товары входят в несколько категорий, то наверняка, есть промежуточная таблица связей "многие ко многим", то запрос будет примерно такой:
    select distinct g.*
    from goods g
    join good_category_hold gch on g.id = gch.good_id
    join category c on c.id = gch.category_id
                                    and c.parent_id = 34
    Ответ написан
    3 комментария
  • Где найти сетевые драйвера для windows xp?

    @alexalexes
    Скачиваете любой ZverDVD XP образ. Внутри образа есть каталог oemdrv с архивами драйверов по категориям устройств. Архив с именем LAN, как правило, содержит сетевые драйвера на самые распространенные устройства под XP. Распаковываете архив и натравливаете на него установщик драйверов, пусть ищет подходящий.
    Ответ написан
    Комментировать
  • Как составить sql запрос?

    @alexalexes
    Самый топорный вариант - "округляем" время до интересуемого интервала (кванта времени) функцией форматированного вывода времени и считаем кол-во записей с группировкой по форматированному значению времени, потом сортируем в нужную сторону.
    Данный пример использует функцию to_char СУБД Oracle и интервал квантования - 1 минута.
    select * from
    (
      select to_char(time, 'YYYY.MM.DD HH24:MI') time_round_minute, count(distinct userId) cnt
      from log_table
      group by to_char(time, 'YYYY.MM.DD HH24:MI') 
     )
    order by cnt desc

    Если отсортировать по форматированную времени, при условии, что формат времени записан в порядке убывания величин (год, месяц, день, час, минута, секунда), то выходные данные - практически готовая гистограмма нагрузки.
    Ответ написан
    3 комментария
  • Как вытащить данные из БД с определенными признаками избегая вхождения других?

    @alexalexes
    Пересеките таблицу сессий саму на себя по идентификатору сессии, и добавьте исключающее условие not in по подключенной таблице.
    select distinct t1.session_id, t1.action
    from table t1
    join table t2 on t1.session_id = t2.session_id
    where t1.action in ('вход', 'переход на страницу 1', 'переход на страницу 2', 'целевое действие')
    and t2.action not in (перечень того, что не должно быть точно)

    Вариант 2.
    select t1.session_id, t1.action
    from table t1
    where t1.action in ('вход', 'переход на страницу 1', 'переход на страницу 2', 'целевое действие')
    and not exists(select 1 from table t2 where t1.session_id = t2.session_id and t2.action in (перечень того, что не должно быть точно))
    Ответ написан
  • Как сделать выборку из 2 таблицы булевым значением?

    @alexalexes
    Вывод логического типа колонки должна поддерживать СУБД.
    А так, на практике, гарантировано можно работать с нулл/не нулл или 0/ не 0 флагами.
    а) Использовать left join и проверять не нулл значение, какого нибудь поля присоединенной таблицы (например, b.table1id).
    SELECT distinct a.id, a.rank, a.firstname, a.name, 
    a.secondname, b.table1id
    FROM table1 as a
    left JOIN table2 as b on b.table1id = a.id and b.dateto < ?

    б) Или считать количество строк подзапросом у порисоединенной таблицы. Можно оптимизировать, отрезав по первой записи rownum = 1, тогда cnt получите 0 или 1.
    SELECT a.id, a.rank, a.firstname, a.name, 
    a.secondname, (select count(*) from table2 as b on b.table1id = a.id and b.dateto < ? and rownum = 1) cnt
    FROM table1 as a

    в) Если поддерживается логика в выводе колонки:
    SELECT a.id, a.rank, a.firstname, a.name, 
    a.secondname, exists(select 1 from table2 as b on b.table1id = a.id and b.dateto < ?) as is_exists
    FROM table1 as a
    Ответ написан
    Комментировать