Задать вопрос
  • Как правильнее использовать ресурсы ПК для терминального сервера и 1C+SQL?

    @rPman
    upd. не сообразил что сервер у тебя на windows, а мой ответ подходит только для linux хоста (можно конечно пробросить контроллеры дисков внутрь одной из виртуалок, и там уже на Linux все сделать но мне кажется это извращением)

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

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

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

    Пример - если сделать 2 блочных устройства отдельно для файлов ОС (к примеру выделил всего 8гб кеша) и отдельно для файлов нагруженной базы данных (у меня так на очень слабой железке 2013 года, хорошо такие нюансы выявлять) то высокая нагрузка на базу данных не затронет кеш файловой системы ОС, характер нагрузки ОС отличается от базы данных, файлы ОС читаются и меняются редко, и если бы лежали на одном блочном устройстве, из ssd кеша их бы выкинуло быстро, а так - отзывчивость работы с ОС осталась на высоте при видимой высокой на hdd диск из-за базы данных.

    p.s. если у тебя ssd диск в рейде, то не бойся включать bcache стратегию writeback, поднимает скорость очень заметно
    Ответ написан
    4 комментария
  • Как разбудить навсегда "заснувший" монитор?

    @rPman
    покрути опции suspend в биосе и добавь опцию noacpi ядру в загрузчике (вполне возможно что оно и так без него)

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

    @rPman
    попробуй поставить https://play.google.com/store/apps/details?id=com.... скопировать бакап на карту памяти и из приложения выбрать восстановить
    Ответ написан
    Комментировать
  • Проблема в процессоре?

    @rPman
    Скрин синего экрана то покажи. Код скажет все необходимое.

    Как вариант, кроме железных проблем, могут быть проблемы с файловой системой (она повреждается если компьютер не штатно завершает свою работу), поэтому загружаешься в режим восстановления и выбираешь там либо автоматически либо через консоль вызывай chkdsk
    Ответ написан
    Комментировать
  • Плохая практика менять объект ненапрямую?

    @rPman
    Согласен с ответом DollyPapper, но формально возможна ситуация когда так можно делать

    К примеру, если научить объект Position сообщать о действиях над собой своим овнерам, создав абстрактный класс CanHavePosition с виртуальным методом doMoving который должен быть имплементирован в классе Character (который наследуешь от CanHavePosition) и вызываться на каждое движение Position::to (способы оформления могут другими быть, например наоборот, в конструкторе Character будет вызываться метод init у Position с колбеком, который будет вызываться внутри Position::to) то такое оформление как у вас будет оправдано.

    Само собой, нет необходимости так делать всегда, и нет нужды следовать строго прямо гайдлайнам, хотя они и 'написаны кровью и ошметками говнокода', всегда можно найти ситуацию, когда не нужны over engineering.

    В конечном счете весь синтаксический сахар и возможности языка созданы чтобы облегчить работу разработчикам и уменьшить шансы им допустить ошибку в коде, и всегда можно найти предел, когда не нужно делать работу ради работы, а делать все ради результата.
    Ответ написан
    Комментировать
  • Как определить или вернуть цвет ячейки в Google Таблицы?

    @rPman
    функция BGHEX(ячейка) вернет строку #XXXXXX
    Дико извиняюсь, не проверил, нужно создать свою функцию с помощью appscript, вот тут пример именно для данной задачи
    Ответ написан
    2 комментария
  • Не открывается файл Питона через Notepad++, что делать?

    @rPman
    зачем в имени файла добавили $( и ) ? он не находит каталога с таким именем '$(C:'

    убери их

    еще момент, какой питон установлен на компьютере, к примеру cygwin реализации ожидают linux формат указания каталогов не через \ а через / (а диски это каталоги /cygdrive/c )
    Ответ написан
    Комментировать
  • На чем настроить и как, промежуточный прокси сервер что бы каждый обращающийся обращающийся на него клиент выходил в сеть под своим прокси сервером?

    @rPman
    По факту любой linux/freebsd/windows позволяют на фаерволе настраивать перенаправление портов программно. Простейшим скриптом периодически сканируешь прокси и генерируешь команды к iptables на смену таблиц перенаправлений.

    Само собой на роутерах это так же возможно (почти все так или иначе дают терминал или можно посмотреть в браузере какие запросы их админка отсылает при смене настроек nat) но само сканирование прокси в этом случае делать на отдельной машине, не нужно нагружать слабое железо.
    Ответ написан
    Комментировать
  • Восстановление файлов с телефона через компьютер и беспроводное подключение?

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

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

    Тут важно чтобы как можно меньше писалось на раздел data, так как именно там хранятся изменяемые файлы пользователей и приложений.

    Обычно там файловая система ext4, так что инструментов и гайдов тьма. Понятно что и шансы не 100%.

    p.s. ты включал резервное копирование файлов в облако гугла? когда телефон настраивают в первый раз, эти опции включают не задумываясь подавляющее большинство пользователей. Т.е. есть шанс восстановить данные (если это сами приложения не запрещают, например google authentiticator не бакапит базу 'паролей' в сеть)
    Ответ написан
    Комментировать
  • Как получать тексты "Балабобы" через Python?

    @rPman
    внимательнее смотри что за запрос в браузере, куки например.
    Ответ написан
    Комментировать
  • Почему браузер не перезагаружает страницы при движении по истории назад?

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

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

    p.s. я очень любил старый opera с движком presto за подобное поведение, при нажатии назад браузер игнорирует любые настройки кеша и гарантированно не лезет на сервер, показывая содержимое максимально быстро
    Ответ написан
  • Какая ОС, по вашему мнению подойдёт лучше?

    @rPman
    неверные предрассудки

    Выбирать само собой linux, тут даже не обсуждается.

    Если у тебя свой специалист по настройке (или ты сам таковым являешься) то ОС нужно выбирать по тому в чем лучше разбираешься.

    Если говорить про то, какую именно то выбор должен быть не системы второго уровня поддержки, а первого, на основе чего создаются эти дистрибутивы, т.е. не ubuntu а debian.

    Фиксация релизной версии есть во многих ОС, даже у gentoo можно 'стабильную' ветку выбрать (на правах шутки ибо релиз в gentoo это как тестовая ветка в debian или даже новее).
    Ответ написан
    3 комментария
  • Какие есть бюджетные ip видеосерверы для оцифровки аналогового сигнала в цифровой?

    @rPman
    Систем видеонаблюдения?

    Я сильно не копался, но цены на этом рынке какие то нездоровые,...

    Настоятельно рекомендую найти способ уйти от аналогового сигнала и перевести инфраструктуру на готовые цифровые камеры.

    Существуют решения (коннекторы bnc - ethernet) относительно дешевые (парами 2-3 т.р.) которые позволяют по имеющимся уже протянутым аналоговым линиям передавать ethernet. Просто нужно помнить что bnc это каоксиальная линия, и при необходимости, если найти сетевые карты, то можно строить сети не точка-точка топологии (т.е. когда к одному кабелю простым соединением подключяются сразу несколько устройств, деля 10мбит канал) я лично не проверял, вполне возможно что доступные коннекторы про эту фишку тупо забыли, ибо так можно продавать в два раза больше коннекторов.

    Стоимость самодельного сервера по работе с ip-камерами на порядок дешевле стоимости централизованных энкодеров. Подбор камер - отдельный разговор, ключевое слово чтобы они могли отдавать сырой видеопоток без проприетарного приложения (дешевые потребительские камеры этим грешат, завязывая решение на платный видеосервис от производителя).
    Ответ написан
    2 комментария
  • Падение производительности диска старых ВМ в KVM. TRIM или что?

    @rPman
    Ваш dd на хосте проверит только линейное чтение, особенно актуально для hdd дисков, и с ним у вас похоже все ок.

    Возможная причина падения скорости - фрагментация qcow2, пересоздаей (если есть снапшоты, то надо думать можно ли так) контейнер примерно так
    qemu-img convert -p -O qcow2 source.img destination.img


    Еще есть фрагментация дисков внутри самой виртуалки, плюс у ntfs mfat фрагментируется (если большими объемами создаются файлы, правятся и удаляются) плюс растет без уменьшения, размазанный по всему диску, это вообще решить можно только пофайловым копированием на новый диск.
    Ответ написан
    Комментировать
  • Как открыть директорию в проводнике из браузера?

    @rPman
    Это можно сделать плагином к браузеру (наименьшие шевеления у клиента - 1 клик на согласие установки).
    Т.е. пишешь расширение, которое будет добавлять api по открытию проводника, желательно такие вещи делать с контролем, например ограничить вебсайт или потребовать apikey и т.п.

    Готовых расширений полно (гуглить app launcher) можно использовать как пример кода.
    Ответ написан
  • Как взломать MD5 hash без соли?

    @rPman
    Один пароль md5 проще искать простым перебором. Так как это твой пароль, то список используемых символов скорее всего известен, или даже можно использовать заранее сгенернированные пароли из базы паролей. Реализаций для видеокарт именно для md5 открытых полно, что даже для одной старой видеокарты и 8-символьного пароля займет несколько дней.

    p.s. Радужные таблицы, имеют смысл если нужно взламывать много паролей, там же название программы
    При этом вероятность нахождения пароля с помощью данных таблиц составит 0,7542 (75,42 %), сами таблицы займут 596 ГиБ, генерация их на компьютере уровня Пентиум-3 1 ГГц займёт 3 года, а поиск 1 пароля по готовым таблицам — не более 22 минут.

    Однако процесс генерации таблиц возможно распараллелить, например, расчёт одной таблицы с вышеприведёнными параметрами занимает примерно 33 часа. В таком случае, если в нашем распоряжении есть 100 компьютеров, все таблицы можно сгенерировать через 11 суток.
    Ответ написан
    Комментировать
  • Почему низкая глубина цвета у RDP?

    @rPman
    Какой то экзотический случай.

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

    Не поленись, по подключайся к этой проблемной машине не из windows а из linux (livecd в виртуалке например) с помощью remina там есть возможность поменять версию протокола, по перебирай, возможно твоя машина вынуждает подключиться с какой то конкретной и это глючит.

    Теперь конкретика - в настройках подключения в программе mstsc попробуй поменять параметры ширины канала - закладка взаимодействие (они определяют остальные, в т.ч. битность цвета).
    Ответ написан
  • Как сортировать по полю из другой таблицы?

    @rPman
    ты на каждую запись из f_list (отфильльтрованную по условию в where) выводишь ВСЕ users, вот они и умножаются
    sql это про умножение таблиц друг на друга, когда они указаны во from

    необходимо задать условие как связаны записи из f_list с users, обычно это foreign key индексы (или у тебя там еще табличка промежуточная)

    так что схему в студию, описывай смысл хранящихся данных в твоих таблицах и что хочешь получить.
    Ответ написан
    1 комментарий
  • Как в PHP из одного потока(сессии) вызвать скрипт другого потока(сессии) скрипт другого клиента?

    @rPman
    Используй семафоры, там есть инструменты по отсылке сообщений между процессами машины, на linux всегда включена, на windows сборках к к сожалению нет

    Иначе реализуй на основе сокетов, тогда будет пофиг на какой машине в кластере работает процесс
    Ответ написан
  • Как генерировать ошибки для ключевого слова?

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

    в результате на каждое слово будет массив его модификаций.

    p.s. не понимаю как все это поможет решению поставленной задачи?
    Задача - реализовать неточный поиск с использованием алгоритма Ливенштейна
    это алгоритм вполне конкретный и очень простой, в нем нет никаких генераций подстановок и опечаток
    Ответ написан