• Как избавиться от лишних пользователей wifi?

    @alexalexes
    Переделать авторизацию с Personal на Enterprise, поднять Radius сервер и выдавать каждому пользователю логин и пароль индивидуально. В настройках радиуса установить одну (две) авторизацию на одного пользователя.
    Ответ написан
    Комментировать
  • Как установить лимит на количество сканируемых файлов?

    @alexalexes
    Если в общих чертах рассказать, то вам нужно сделать такие шаги:
    1. Переписать функцию из рекурсивной формы в стековую форму. То есть, вместо того, чтобы пользоваться стеком вызова функций и помещать туда входные параметры вызова (в данном случае, $dir), вам нужно самим на основе массива создать стек для хранения параметров, чтобы реализовать хранение контекста текущей директории.
    После того, как вы организуете стек, вы легко можете прерывать функцию в любом месте и сохранять состояние стека в свойстве класса.
    2. Сохраняйте дескриптор $handle в свойстве класса и очищайте его, когда полностью пройдете по текущей директории или когда полностью закончите сканирование. Это также позволит прерывать функцию в любом месте.
    3. Чтобы сканировать по 100 файлов, делайте локальный счетчик внутри функции и просто выходите из функции, когда достигли макс. значения.
    4. Имея 1, 2 и 3, при очередном вызове функции сначала проверяете можно ли воспользоваться дескриптором $handle для чтения очередного файла, если нет, то попытаться вытащить следующий элемент из стека директорий, освежив дескриптор $handle.
    Если у вас удалось получить рабочий $handle, то сканирование продолжится.
    Когда сканирование находит очередной каталог, то его нужно положить в стек. Если переключаться на сканирование найденного каталога сразу, то у вас будет работать метод сканирования в глубину, если переключаться на новый каталог после того, как закончите сканирование текущего, то сканирование будет работать в ширину.
    ЗЫ: чтобы запустить функцию сначала, нужно положить в стек элемент с корневым каталогом.
    ЗЫЫ: В стеке удобнее будет хранить дескрипторы а не строковые пути, по ним удобно работать функцией readdir, если у вас будет поиск в глубину.
    Ответ написан
  • Как транспонировать строки в столбцы?

    @alexalexes
    Никак. Эта форма вывода сведений. Она должна рисоваться либо у конечного пользователя в графическом интерфейсе, либо скриптом на стороне сервера, клиентом СУБД которого он является (PHP, NodeJS), либо, на худой конец, хранимой процедурой или функцией, которая на выходе выдает текст в html.
    Напрягать SQL, чтобы выводил произвольное кол-во столбцов - это не его задача.
    Ответ написан
    Комментировать
  • Какая логика поднятия объявлений в топ?

    @alexalexes
    Я бы построил бы структуру таблиц так, чтобы можно было бы выполнить такой запрос (по версии sql Oracle):
    -- премиум выборка
    select  1 as priv_type, -- тип привилегии 1 - премиум объявление
        C.*
    from
    (
      select B.*,
                 dense_runk() over (order by B.user_id) as user_num, -- нумеруем авторов объявлений
                 row_number() over (partition by B.user_id order by rownum) as add_num -- нумеруем объявление в пределах автора
      from
      ( -- достаем премиум объявления в случайной сортировке
         select A.*
           from A
         where premium_pay_date is not null and sysdate - premium_pay_date <= 3 -- условие попадания в премиум
      order by DBMS_RANDOM.RANDOM
       ) B
    ) C
    where user_num <= 5 -- берем 5 авторов
       and add_num = 1  -- по одному объявлению от автора
    union
    -- обычная выборка
    select 2 as priv_type, -- тип привилегии 2 - обычное объявление
             A.*,
            -- зануляем доп. поля от премиум, чтобы union работал корректно
            null user_num,
            null add_num 
      from A
      where premium_pay_date is null or sysdate - premium_pay_date > 3 -- можно исключить премиум из общей выборки, а можно не исключать
    order by priv_type, Publication_Date desc
    Ответ написан
    Комментировать
  • Есть ли бесплатная база данных с фильмами?

    @alexalexes
    Торрент-форумы очень хорошо структурированы, как каталог фильмов.
    Если приложить некоторые усилия в плане парсинга такого форума, то можно получить дамп .torrent файлов - а это практически прямые источники видеопотока, но нужен торрент-клиент.
    Ответ написан
    Комментировать
  • Как работает WriteLn в PascalAbc?

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

    @alexalexes
    Несите в комп. мастерскую, желательно, чтобы у мастера был микроскоп. Без хорошего увеличительного прибора проконтролировать самостоятельное исправление практически сложно.
    В следующий раз, когда будете работать с мамкой, крышку на соккете снимайте только когда уже будете держать в руках процессор. Не оставляйте неприкрытыми контакты соккета ни для каких других операций, кроме установки процессора - обязательно уроните на него отвертку или снесете контакты пальцами.
    Ответ написан
    Комментировать
  • Можно ли программировать atmega16u2 через Arduino IDE?

    @alexalexes
    IDE для разработки прошивок под Atmel... зависит от версии Windows, кому принадлежала фирма на момент выпуска актуального ассортимента чипов:
    AVR Studio -> Atmel Studio -> Microchip Studio for AVR.
    https://www.microchip.com/en-us/tools-resources/ar...
    Как шить? Нужен программатор USB ISP - с USB на пины MISO/MOSI, и любой софт, который понимает hex файлы AT и сможет зашить их.
    Ответ написан
    Комментировать
  • Скачет температура процессора ноутбука 40-95, кто подскажет в чем может быть причина?

    @alexalexes
    Открыл крышку посмотреть вдруг прижимная пластина не прикручена или ещё что, все хорошо.

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

    @alexalexes
    При нажатии "Добавить комментарий", пробежаться по всем формам и принудительно привести их в статус "свернуто", кроме той формы, где кликнули кнопку "Добавить комментарий".
    Ответ написан
    Комментировать
  • Как можно вывести на сайт документ Office?

    @alexalexes
    Любое решение, не связанное с развертыванием облачного офисного пакета на своем сервере, будет сводиться к виду:
    <iframe src="адрес_облачного_сервиса/просмотрщик_облачного_сервиса?url=url_файла_на_вашем_ресурсе_в_открытом_доступе">
    </iframe>
    Ответ написан
    5 комментариев
  • Как выбрать много пользователей через чекбоксы и выполнить sql запрос?

    @alexalexes
    Оборачиваете html-таблицу в форму, с кнопочкой сабмита. Когда отметили нужное, пользователь должен засабмитить форму. В форме нужно указать метод передачи GET или POST и адрес, где будет располагаться серверный скрипт обработки формы.
    В скрипте примерно такой код:
    <?php
    // считаем, что данные пришли по POST-у
    if(isset($_POST['submit'])) // проверяем, что приехали данные формы по submit, в кнопке сабмита атрибут name должен иметь значение submit
    {
       $inserted_user_count = 0;
       if(isset($_POST['selected_users'])) // присутствуют отмеченные пользователи
       {
          $pdo = new PDO(параметры подключения к базе);
          foreach($_POST['selected_users'] as $selected_user_id)
          {
            $stmt = $pdo->prepare('insert into ваша таблица (атрибуты таблицы) values (значения атрибутов таблицы, кроме user_id, :user_id)');
            $stmt->bindParam(':user_id', $selected_user_id, PDO::PARAM_INT);
            // еще байндим какие-то параметры у запроса, если есть плейсхолдеры, кроме :user_id.
            $stmt->execute(); // наконец, выполняем запрос
            $pdo->commit(); // фиксируем изменения в базе данных, если у вас соединение открыто не в режиме автокамита
            $inserted_user_count++;
          }
          $pdo = null; // закрываем соединение с базой
       }
       echo 'Обработано пользователей: '.$inserted_user_count;
    }
    ?>
    Ответ написан
    Комментировать
  • Как научить телефон снимать в 1k60fps?

    @alexalexes
    Скорее всего ответ нужно искать на специализированном форуме, в специализированной теме.
    https://4pda.to/forum/index.php?showtopic=1043136&...
    Ответ написан
    1 комментарий
  • Как отключить "скольжение" курсора после остановки?

    @alexalexes
    В Windows, в свойствах мыши, основным параметром, отвечающий за точность позиционирования указателя - галочка "Включить повышенную точность установки указателя". Остальные особенности работы тачпада нужно искать в утилите, которая, возможно, устанавливается с драйверами к ноутбуку, и доступна в трее панели задач.
    Ответ написан
    Комментировать
  • Как с одного компа подключиться к другому?

    @alexalexes
    В принципе, реально. Только ресурсов для виртуализации должно быть сильно больше, чем если бы просто запускать игру, потому что у вас комп еще будет стримить видео в реальном времени в большом разрешении, и чтобы это без серьезных задержек было.
    https://habr.com/ru/companies/ruvds/articles/583784/
    https://habr.com/ru/companies/ruvds/articles/584910/
    Ответ написан
    Комментировать
  • Как прибавлять значение в базе данных SQL для бота aiogram?

    @alexalexes
    1. Выбрать из базы запись по известному user_id.
    2. Если получили запись, то выполнить обновление атрибута записи win = win + 1 где user_id этой записи равен известному user_id (то же самое в случае проигрыша loss = loss + 1).
    3. Если не получили запись, то делаете вставку записи пользователя, с win = 0, loss = 0 (с 1 в нужной ситуации).
    Ответ написан
  • Как обрабатывать файл полученный пост запросом правильно?

    @alexalexes
    Именно так, как вы описали.
    Вообще, если вы используете нативные возможности серверного окружения для приема, передачи, чтения, записи данных по средством файлов, то вы должны морально готовы написать код так, чтобы минимальными ресурсами оперативной памяти (десятки мегабайт) перерабатывать объем данных (сотни мегабайт, гигабайты), расположенный в файлах, кратно превышаемый объем этой оперативной памяти, выделенной для выполнения скрипта.
    Поэтому, читать файлы вам в любом случае построчно (еще правильнее - поблочно, с ограничением макс. длины блока), и при обработки блока постоянно вспоминать, а сколько оперативной памяти кушается при получении данных из файла (делать отладку с профилированием памяти), передачи их в функции и методы обработки, до записи результата. Также научитесь вовремя очищать тяжеловесные переменные (внезапно unset окажется не так уж бесполезен).
    Ответ написан
    Комментировать
  • Купил бу комп.. В диспетчере указывался 1 cpu. После перестановки винды в скрылся обман. Cpu другой. Как это сделали как противостоять не разбирая пк?

    @alexalexes
    Правкой реестра в Windows можно написать любое название устройствам.
    Как правило, сложнее переделать идентификаторы оборудования, так как от них будет зависеть подхватится ли нужный драйвер устройства или нет. Если сомневаетесь, что устройство не то, то из свойств можно забрать ID оборудования и пробить поисковиком, если поисковик выведет на драйвер такого же устройства (или хотя бы его семейства), то возможно, оно такое и есть.
    Надежнее иметь у себя флешку с LiveCD, которую можно воткнуть и запуспить свой Windows из флешки и посмотреть AIDA64, или взять отдельно AIDA64 портативную версию, и запускать в штатной системе.

    Системный блок лучше разбирать и смотреть что там установлено. Проц. переобслужить всегда можно.
    Особенно важно смотреть в каком состоянии видеокарта, можно без разбора. Нужно смотреть в торец платы в каком состоянии пайка чипов памяти (на предмет перепайки - не блестят ли шары олова), в каком состоянии торец текстолита (не ужарен ли).
    Покупка ноутбука - вещь в себе, просто так его не разберешь, не повредив свойства термоинтерфейса.
    Ответ написан
    Комментировать
  • Что выбрать Thinkpad t410 или t420?

    @alexalexes
    t420 имеет проц. i5 2520M - который поддерживает до 16 Гбайт оперативы.
    t410 - проц. i5 540M, макс. ОЗУ - 8 Гбайт.
    t420 - встроенная графика intel 3000,
    t410 - NVIDIA Quadro NVS 3100M.
    Различия в графике по производительности - в пределах погрешностей.
    Если эти динозавры еще живые, то хотелось бы, чтобы оперативки можно было бы поставить по максимуму, поэтому лучше раздобыть t420 с 16 Гбайт на борту.
    Если рассмотреть ноуты-динозавры на DDR3 памяти (не обязательно Thinkpad/Lenovo), то лучше, чтобы проц. был на Ivy Bridge (i5 3xxx), тогда бонусом будет частота памяти 1600 и 16 Гбайт емкость по-максимуму.
    Если что-то по мощнее нужно из старого и емче по ОЗУ, то смотрите уже что-то на DDR4.
    Ответ написан
    Комментировать
  • Как сохранить порядок номеров в запросе?

    @alexalexes
    Припаркую свой велик.
    Из in нельзя вытащить сведения о порядке, он просто дает ответ "включает" или "не включает" в себя значение.
    Если СУБД позволяет, то для сеанса создаете временную таблицу, где добавляете все необходимые атрибуты (в данном случае порядок записей), и пользуетесь ей. Если не позволяет, то всегда можно написать подзапрос и он тоже будет работать почти как временная таблица:
    SELECT *
      FROM table
      join (select 1 id, 7 val union
              select 2, 8 union
              select 3, 5 union
              select 4, 4 union
              select 5, 1)  tmp on table.id = tmp.val
    order by tmp.id
    Ответ написан
    Комментировать