Задать вопрос
  • Какой способ уместить разные стили в одной строке лучше?

    @rPman
    Вариант spinnedString предпочтительнее, он лаконичнее, меньше мест для ошибок, но многословен, с другой стороны в коде же не будешь только константы строки добавлять, тебе нужна раскраска от логики, а значит многословность уже не проблема.

    Вариант с html на сколько я понимаю более универсален, его можно использовать с шаблонизатором, т.е. когда у тебя уже есть шаблоны сообщений и их нужно приводить к конечному виду, а собирать итоговый текст, размечая с помощью spinnedString может оказаться неудобно.

    Так что исходя из задачи выбирай.
    Ответ написан
    Комментировать
  • Почему не скачивается сайт через wget?

    @rPman
    Потому что он построен на скриптах, контент динамический а wget умеет только со статикой работать

    скачать динамический сайт в общем случае можно только специализированным софтом (к сожалению старые телепорт или offline explorer уже не катят) либо подстроиться под конкретную реализацию и написать приложение с помощью автоматизации работы браузера (silenium например)

    почитай еще ответы
    Ответ написан
    Комментировать
  • Есть ли возможность ускорить соединение если подключиться к провайдеру несколько раз?

    @rPman
    Да, но не все просто!

    С кучей оговорок у вас есть шанс получить в итоге ускорение к примеру по загрузке torrent (подтверждено практикой, два 100мбит провайдера в квартире в сумме давали почти на каждой закачке до 20мбайт/сек).

    Во первых, почти бессмысленно подключать два провода одного провайдера, все будет зависеть от ширины канала этого провайдера, приходящего к вам в дом плюс лимиты qos которые он настраивает. Т.е. нужны два разных провайдера, у которых максимально различные подключения по городу/региону и даже в мир.

    Во вторых, настройка перераспределения подключений та еще проблема, если в лоб настроить по подсетям, каждому подключению свой список, то это может не полностью раскрыть возможности увеличения скорости, плюс найти точную информацию о взаимном пиринге между провайдерами и миром не просто, а так как нужна информация еще и о нагрузке, то собирать статистику долго и муторно.
    Если говорить про торент загрузки, то без какой либо настройки если выделить каждому каналу свою персональную машину/виртулку/cgroup и запустить для каждой свой torrent клиент, с требуемой загрузкой, плюс они должны видеть друг друга в локальной сети, плюс быстрые диски, то можно получить гарантированное ускорение загрузки за счет траты ресурсов (диски нагружаются четверократно от ожидаемого).

    Есть технологии подключения, когда на каждое новое подключение роутер выбирает сам маршрут, наименее нагруженный, с некоторыми оговорками это самый оптимальный (из дешевых) способ, но некоторые веб-сайты и даже игровые серверы могут обижаться на постоянно гуляющий ip клиента.

    Самый 'правильный' способ - настроить vpn подключения (к одному и тому же серверу но по разным маршрутам) до гарантированно быстрого сервера (скорее всего максимально близко территориально, чтобы пинги были хорошими) и объединить их в транк (т.е. на сервере должна быть поддержка объединения каналов). К сожалению это самый дорогой способ (нужно оплачивать аренду сервера с быстрым подключением) плюс серверов с нужной скоростью может в принципе не оказаться. Есть готовые сервисы, но я сомневаюсь что они могут предоставить подключение на скорости в гигабит (они скорее для объединения медленных обильных или adsl подключений)

    p.s. и выше верно сказали - скорость подключения к интернет - это абстракция, ты можешь быть подключен на определенной скорости только к серверам провайдера но не ко всему интернету в целоом, но помимо физических лимитов провайдеров, они могут лимитировать логически протоколы по своей прихоти.
    Ответ написан
    Комментировать
  • Почему новый ноутбук Acer Insipre 3 не видит родной жесткий диск SSD?

    @rPman
    Записал на флешку манджаро, сел устанавливать, а он не видит жесткий диск ноута.
    запускать установщик/сам линукс в режиме efi или отключить secure boot или еще что то вокруг этого
    Ответ написан
    Комментировать
  • Матрица в матрице?

    @rPman
    В c++ есть запись математически схожая с доступом к элементам матрице в математике запись:
    m[x][y] - т.е. мы берем элемент xy матрицы m (формально наоборот конечно, сначала строки Y потом колонки X но в конечном счете разницы никакой, кроме как если важна оптимизация).

    В реальности же эта запись означает что мы берем x-ый массив в списке m и у полученного массива берем y-ый элемент, т.е. m имеет тип массив массивов элементов, и для работы с ним его нужно инициализировать, создав нужное количество массивов одинаковой размерности.

    p.s. иногда, когда хочется 'простоты' инициализации, уменьшения фрагментации памяти, более эффективный доступ последовательный к элементам, можно хранить массив в виде одномерного массива всех элементов матрицы, а доступ к элементам получать, вычисляя смещение в этом массиве как x+y*N, где N - размер матрицы по X, т.е. m[x+y*N], зато когда надо работать последовательно со всеми элементами с лева направо, сверху вниз, можно просто работать по смещению в этом одномерном массиве m[i++]

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

    const int N=3;
    const int M=2;
    int ml[N*M]={1,1,1,2,2,2};
    // матрица:
    // 111
    // 222
    int* m[M];
    for(int i=0;i<M;i++) m[i]=*(ml[i*N]);
    //
    for(int i=0;i<M*N;i++) ml[i]...
    и
    for(int y=0;i<M;i++) 
      for(int x=0;i<N;i++) 
        m[y][x]... // порядок колонки строки тут перевернут, но можно заранее это учитывать и перевернуть везде в коде для удобства восприятия

    p.p.s. может где то ошибся но не принципиально, сто лет не писал на си
    Ответ написан
    Комментировать
  • CentOS сервер выключается полностью. WOL не работает. Сетевуха не горит. Что не так?

    @rPman
    ну если
    Wake-on: g

    то у сетевухи поддержка есть (если сетевая карта не встроенная, убедись что соответствующий проводок от нее подключен к материнке)

    значит осталось убедиться что
    В BIOS настройки установлены верно.
    Ответ написан
  • Как обрабатывать на бэкенде случайные множественные запросы с фронтенда?

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

    Если же фронтэнд трогать нельзя, значит бакэнд должен как то идентифицировать дубляж данных. Самое простое (если это позволяет бизнеслогика) - хранить в сессии хеш (точнее список таковых за последние несколько секунд) последнего запроса на изменение данных с фронтэнда и игнорировать те, у которых он повторяется. Почему нужно хранить список, потому при использовании ajax и проблемах с интернет, запрос может заметно подзадержаться, пользователь может перейти на другую страницу (SPA или использование web worker) отправить там запрос и перейти снова к первоначальной, и отправить повторно.
    Ответ написан
    Комментировать
  • Нету драйверов при установке Windows 7?

    @rPman
    Правильно - интегрировать драйвера в установочный iso (программа ntlite, она и обновления может закинуть туда, чтобы слабая машина после установки еще сутками не обновляла систему), способ рабочий но найти драйвера, извлечь их из многоуровневой упаковки последовательно вендором, материнки, вендором ноутбука и т.п. может быть не просто. В почти готовом виде драйвера лежат в драйверпаках. Иногда у производителя тоже правильно лежит на сайте.

    Чуть менее правильно - выделить на диске раздел, скопировать туда установщик и прописать его загрузочным... первая же ссылка из гугла

    Я еще ставил операционку из виртуалки (первый этап до перезагрузки внутри виртулаки, потом вне)
    Ответ написан
    Комментировать
  • К какому специалисту обратиться?

    @rPman
    Реверсить протокол, судя по тому что говорящий сумел узнать url, и он http (не шифрованный), значит сделать это можно не занимаясь отладкой приложения (а это сразу понижает требования к уровню исполнителя), т.е. поставив любой снифер трафика или прозрачную прокси между приложением и сервером.

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

    Если разработчики приложения начнут вставлять палки в колеса, мешать реверсу, создавать обфусицировать передаваемые данные и т.п., это может повысить требования к специалисту до 'заниматься отладкой', к сожалению сразу не определишь, пока не попробуешь, поэтому сначала дай задачу - проанализировать возможность определить возможность (с отчетом о методике), сложность и стоимость работы, и уже потом выбирать исполнителя.

    upd. там помимо windows приложения, есть android apk версия, ее декомпиляция проще
    я натравил на него jbart и вижу что приложение написано на lua или очень активно его использует, их тоже можно декомпилировать (но пропатчить уже не получится), просто поиском указанных api http endpoint не увидел (возможно используется иной или как то не тривиально сокрыто)

    код огромный, под сотню мегабайт декомпилированных исходников, плюс полторы тысячи файлов luac
    Ответ написан
    Комментировать
  • Как настроить ip на virtualbox?

    @rPman
    VirtualBox создает машину практически идентичную настоящей, если сеть в виртуалке настроена как "сетевой мост" с твоей локальной сетью, значит ip адрес выдает роутер (точнее твой dhcp сервер, который обычно идет вместе с роутером) именно он выдает ip адреса машинам в сети, так что настраивать его (ищи что то типа соответствие мак адреса и ip), если nat то настрой сетевой мост (nat - это значит роутером выступает сам virtualbox а там с настройками грустно)

    Еще вариант, в самой виртуальной машине нужно настроить статический ip адрес, ссылка первая попавшаяся, версия ос у тебя может другая, перепроверь, но важно настроить такой ip адрес, чтобы он не попадал в диапазон выдаваемых dhcp сервером сети адресов, так как если они совпадут, у обоих машин не будет сети.
    Ответ написан
    Комментировать
  • Почему ORDER BY DESC в mysql работает не в 100% случаев?

    @rPman
    Перепроверь, что тип поля действительно числовой а не к примеру varchar (хотя если там числа то это не должно что то менять)
    Перепроверь что база данных не повреждена, может просто пересоздать индекс?
    Ответ написан
    Комментировать
  • Как проверить совпадение нескольких переменых?

    @rPman
    $input=[22687, 22687, 22688];
    $res=[];
    foreach($input as $v) @$res[$v]++;
    foreach($res as $v=>$cnt) if($cnt>1) echo $v."\n";

    вместо последней строки вывода можно использовать array_filter, если нужно вернуть массив
    $res2=array_filter($res,fn($cnt)=>$cnt>1);
    Ответ написан
  • Как использовать два и более openvpn клиентов одновременно?

    @rPman
    директива dev должна указывать на tap0 и tap1 в соответствующих конфигах

    и еще, ошибки смотреть надо в логах, /var/log/*openvpn* (на сколько я помню, имя лога соответствует имени файла конфига и/или службы, по которой запускается openvpn)

    p.s. пропиши route для подсетей провайдера vpn чтобы трафик второго не шел через первый открытый vpn
    Ответ написан
    2 комментария
  • Какое оборудование можете посоветовать для создания сетевой инфраструктуры на дачном участке?

    @rPman
    Точек мало, размещение оптимальное (рядом с потребителем, ловить по границам не надо - идеальное условие) тогда в качестве wifi репитера справится любые потребительские роутеры, даже без особой настройки, если роутеры не будут друг другу мешать, достаточно в каждом настроить одинаковые ssid и пароли, объединить в одну локальную сеть, подключив к главному роутеру, раздающему интернет (только он пусть раздает DHCP и работает шлюзом). 5 витых пар подключаются в практически любой роутер без свитчей, что еще надо.

    Полноценный режим повторителя сейчас есть кажется в любых потребительских роутерах, поэтому выбираешь по цене и любимому бренду, смотришь мануал по возможностям и берешь.
    Ответ написан
    1 комментарий
  • Нейронная сеть для классифицирования сверх малых изображений?

    @rPman
    Нейронные сети в первую очередь не про сами сети, а про данные, на основе которых они обучаются.

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

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

    Чем больше будет пар картинок (включая все комбинации всех имеющихся) тем больше шансов что сеть 'поймет' что именно определяет похожесть.

    Про RGB, а характер изменений, в пределах которых нужно считать изображения похожими цвет участвует? если нет то почему бы от него вообще не избавиться? Или наоборот, отдавай сразу в одну сеть все три канала, она разберется. Еще можно заменить RGB на HSL (оно ближе к человеческому восприятию и его пониманию похожести).

    Про слои, обычно первый слой - это классификатор, даже предлагают сначала искать классификатор а потом брать его сеть как часть будущей сети, решающей задачу, как способ ускорения поиска. Последующие слои определяют сложность задачи

    p.s. попробуй вариант сети, когда один выход является оценкой похожести... с точки зрения реализации нет никакой разницы, но для сети это может быть проще чем искать два бинарных выхода
    Ответ написан
  • Где можно найти примерный список требований и стека технологий для продвинутого веб-чата?

    @rPman
    Транспортный протокол - websocket и опционально webrtc (для передачи данных между клиентами, например файлы передать или аудио/видео звонок)
    Шифрование сам выбирай, и это не питон а javascript клиентская сторона.

    Отказоустойчивость это немного не про выбор протокола, а про организацию бакэнда в принципе. Плюс тестирование в различных ситуациях.
    К примеру мобильные сети часто банят webrtc (вообще капризный протокол, так что предусмотри откат на классическую передачу через сервер) плюс борьба с nat, stun сервера и т.п.

    Текстовый чат это очень простая задача, можно тупо посмотреть готовый на примерах для websocket и webrtc, все нюансы как раз вылезают когда начинаешь добавлять фичи.
    Ответ написан
  • Можно ли с помощью UNetbooting установить Винду с линукса?

    @rPman
    Используй виртуальную машину (хоть VirtualBox), пропиши ей физический диск и запусти первый этап установки, до перезагрузки а после уже загружайся напрямую.

    Это сработает если загрузка в режиме legacy (для efi нужно заморочиться, кажется qemu умеет но запись в boot list само собой не запишется), вполне возможно что после установки можно будет запуститься и в режиме efi но нужно будет прописать в него загрузочную запись про windows.

    Учти, windows заменит собой загрузчик linux, если он legacy, поэтому заранее озаботься каким-нибудь решением (к примеру linux запускай в режиме efi а windows в legacy, позже как добавишь туда запись будет выбор из биоса)

    p.s. флешку или cdrom загрузочные иметь под рукой все равно надо, на случай если будет ошибка какая то
    Так же если есть второй физический диск, тоже можно использовать, windows ломает загрузчик только на 'своем' диске
    Ответ написан
  • Как починить SSD?

    @rPman
    Попробуй с помощью hdparm (ключ -r) выключить флаг readonly установив в 0

    hdparm -r /dev/sda
    покажет текущее значение

    hdparm -r 0 /dev/sda
    установит в 0
    Ответ написан
  • Почему эмуляторы андроида основаны на виртуальных машинах?

    @rPman
    Что значит почему? Потому что windows из сакс?

    На linux можно запустить с помощью lxc контейнера, например (lxc это нативное исполнение кода с разграничением прав через cgroups, этакий chroot на стероидах)

    p.s. использовать WSL и LXC в теории может позволить провернуть подобный финт и на windows, но графического режима туда не завезли, т.е. смысла в этом нет
    Ответ написан
  • В чём заключается прикол объединения индексов в MySql и на что это влияет?

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

    Так же большее влияние оказывает конфиг и железо, на котором все запускается и к примеру переход от hdd к ssd (кстати даже если индексы отдельно положить на ssd).

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