Задать вопрос
  • Как исправить ошибки php mysql?

    @rPman
    нужно смотреть что там за сообщение об ошибке, вполне возможно /usr/lib/php/20200930/mysqli.so файл нулевой длины и его достаточно будет удалить вручную

    удаляй все что хоть как то конфликтует, включая их зависимости
    apt purge ...

    если что можно удалять вручную с помощью dpkg игнорируя зависимости но в конце концов порядок нужно восстановить чтобы apt autoremove -f отработало и dpkg-reconfigure -a тоже

    p.s. почему у тебя такой странный путь?
    поэтому вместо debian я ставлю ubuntu, список и поддержка backports для кучи полезных приложений там заметно полнее и все за порядок удобнее
    Ответ написан
  • Как спарсить строку в double?

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

    Выбирай страну с твоим форматом или проси пользователей вводить числа в формате, принятом в своей стране (указанной в системной локали ОС)
    NumberFormat format = NumberFormat.getInstance(Locale.FRANCE); // Locale.US если надо точку, осторожно запятая с ним игнорируется как разделитель тысяч
    Number number = format.parse("1,234");
    double d = number.doubleValue();


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

    но самое паршивое, когда народ лезет в настройки локали windows и меняет запятую на точку и получает еще больше глюков с тем же ms office
    Ответ написан
  • Какое есть актуальное программное обеспечение для резервного копирования файлов в неизменном виде на момент конца 2021 года (Windows 10)?

    @rPman
    syncting, отличное приложение, открытый код, независимость от интернета (работает в локальной сети без него, как я понимаю можно свои relay/stun сервера поднять, с помощью которых позволяется копирование между двумя сетями за nat), удобный интерфейс в браузере, кроссплатформенность включая android, причем на столько что свой смартфон можно использовать как промежуточное хранилище (из-за особенностей прав доступа у приложения нет полного доступа на удаление файлов с флешки, но работа с внутренней памятью верная), типа пришли в закрытую сеть или с медленным интернетом, автоматически получили обновления документов по локальной сети, пришли домой, и автоматически залились эти изменения в домашнюю папку. Максимум ручной запуск приложения на смартфоне, а то иначе немного кушает батарейку.

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

    Собственно после того как про это приложение узнаешь, всякие onedrive, dropbox и прочие становятся какими то ущербными. Нужно хранить облачно? поднимай сервер (10 минут рукошевелений) на дешевой vps-ке за 10-20$ в год (лучше на двух в разных датацентрах) и вот у тебя 100гб облачное хранилище
    lowendhost
    82flglsxxgkwrhv3di3ouk4awya.png
    Ответ написан
    Комментировать
  • Flask после запуска кода, сайт не изменяется. Почему?

    @rPman
    это инвалдидация кеша на клиентской стороне, и то большая беда идеологическая (не баг а фича)
    в браузере нажать ctrl+f5 чтобы принудительно обновить данные в кеше

    на будущее, как одно из решений, все ссылки статичные файлы делать с номером их версии (или к примеру хеш)
    https://example.org/main.css?ver=1
    или

    https://example.org/main.7f1acc2b.css
    где 7f1acc2b какой-нибудь хеш содержимого файла (главное чтобы менялся при его изменении)
    соответственно пере публикацией файлы нужно переименовывать, включая ссылки на них
    Ответ написан
    Комментировать
  • Праивльно ли хранить инфу о просмотрах в базе mysql?

    @rPman
    Совершенно нормально, вместо выполнения запроса на аналитику в момент вывода, делать это тригером во время изменения данных, в соответствующее поле.

    Это оправдано с того момента, как количество запросов на чтение в несколько раз превышает количество на изменения, особенно когда аналитика запрашивает многоданных... т.е. почти всегда.

    Место на диске на порядки дешевле чем процессорное время (и время работы этого диска), которое ты будешь тратить на аналитику.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы хром думал что человек находится на множестве вкладок одновременно?

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

    Чтобы скрипт работал (таймеры не тормозили) при любой вкладке, реализуй его с помощью Web Workers
    Ответ написан
    Комментировать
  • Как получить данные формы и отправить дальше?

    @rPman
    Старый и идеологически уже не правильный способ, при формировании кода страницы 2 в значения value тегов input можно вставлять значения, принятые со страницы 1 (глобальная переменная $_POST или $_GET), но при этом необходимо пропустить эти данные через htmlspecialchars а для данных вне атрибутов, например для select или textarea, - более мощную htmlentities, но в любом случае с осторожностью, например \n там для html опций не конвертируется (а для xml да но другие нюансы), советую полистать комментарии под этими функциями.

    Если из страницы 1 нужно было передать данные полей, которых нет на странице 2 но нужны на странице 3, то использовали скрытые input type=hidden

    Очевидно, что это максимально идиотский и неэффективный метод передачи данных между страницами, и существовал он исключительно потому, что браузеры не имели нормального скрипта в стандарте, но теперь есть javascript, есть куки, есть локальное браузерное хранилище, есть ajax, есть вебсокеты, любой из этих технологий достаточно чтобы не городить описанное мной многоуровневое убожество.
    Ответ написан
  • Что нужно изучить чтобы писать красивые приложения под Android?

    @rPman
    Красивый интерфейс - это дизайн (+ mobile UX trend)
    Удобный интерфейс - это юзабилити дизайн (все на это почему то забивают)
    Красивый код - это... code style и может быть это (первое что гугл выдал)
    Ответ написан
    Комментировать
  • Как получить доступ к файлу?

    @rPman
    Либо закрывай файл после создания, либо файл нужно создавать с указанием режима прав доступа ReadWrite
    Для этого подойдет собственно конструктор FileStream
    в доке какраз ниже пример:
    FileStream fWrite = new FileStream("test.txt", FileMode.Create, FileAccess.ReadWrite, FileShare.None, 8, FileOptions.None);


    лучше сохранять объект FileStream для переиспользования чем каждый раз заново открывать файл да еще и отдавать вопросы синхронизации на откуп системы (это тупо медленней)
    Ответ написан
    Комментировать
  • Андроид эмуляторы под убунту?

    @rPman
    не поддерживает нужные мне приложения в гугл сторе - Your device isn't compatible with this version
    изучи подробнее, покопавшись в apk, что именно не нравится

    вполне возможно не подходит архитектура процессора?
    или к примеру разработчики не хотят чтобы их приложение работало в эмуляторе?
    Ответ написан
  • Что можно майнить на Rasberry?

    @rPman
    idena.io - главная идея проекта, майнят не мощности а идентити (человек).

    На текущей момент никакой адекватной пользы проект не приносит, инструменты для использования имеются (например можно на сайте сделать авторизацию через клиент), встроенный ipfs и наличие rpc команды для публикации объекта по уму могут позволить сделать что то по истине децентрализованное, но пока стандарт не устаканился (и документации нет) пилить что то не советую.

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

    p.s. на прохождение валидации тратится (сейчас раз в ~2 недели) примерно пол часа.
    1 аккаунт даст с майнинга в сутки примерно 0.25 центов, за прохождение валидации от 0 до 20$ (каждый успешно выданный инвайт может принести в конечном счете ~20-30$, на это уйдет 3-4 валидации, каждую валидацию аккаунту дают по 1 инвайту, если ты human, плюс если скор высокий еще одну.

    при не заскорузлых мозгах и большом везении можно тянуть два аккаунта

    p.p.s. с каждой валидацией увеличивается количество желающих (10k+ как раз последняя принесла и в криптоэкономике это много, ибо даже в худшем, половина реальных активных людей) и уменьшается доход пропорционально, так же увеличиваются требования к машине, если год назад все работало чуть ли не на калькуляторах, то теперь дешевых 1$ vps-ок уже не хватит, я видел пример когда на старенького фенома уже нехватало
    Ответ написан
    Комментировать
  • Лучший ssh клиент с подсказкой и сохранением команд?

    @rPman
    в корне неверный подход использования инструментов:
    * чтобы не вводить пароли, нужно настраивать беспарольную аутентификацию по ключу
    * для длинных доменов можно настроить алиасы по их адресу в /etc/hosts либо создать локально скрипты или алиасы bash на всю команду подключения (к примеру если часто нужно еще и нестандартный порт указывать)
    * автодополнение команд выполняется не на твоей машине, а на удаленной, штатным инструментом bash completion, так же можно использовать другие шелы типа zsh, 'все в голос' считают его удобнее, но нужно привыкать и настраивать.

    про автодополнение по истории команд, смотри этот вариант
    Ответ написан
    2 комментария
  • Слетает ли гарантия с ноутбука при переустановке ОС?

    @rPman
    Нет, но на гарантию может повлиять к примеру разгон/изменения вольтажа (процессора или видеокарты) плюс смена прошивки видеокарты (при обновлении прошивки биоса материнки на штатный - нет), на это иногда закрывают глаза но формальный повод у сервиса имеется
    Ответ написан
    Комментировать
  • Какой эмулятор мне подойдёт?

    @rPman
    Правильнее сказать какую хост систему выбирать, в windows выбор только с виртуализацией, но для linux есть паравиртуализация, запуска другого linux без виртуализации, на основе lxc есть успешные попытки anbox.io
    Статья
    Ответ написан
  • Не устанавливается .msi, что делать?

    @rPman
    Читай логи устновщика, запустив его вручную, чтобы лог создавался где тебе надо

    msiexec /i "myapp.msi" /l*v "myapp.log"
    Ответ написан
  • Как преобразовать базовый диск с установленной Windows 10 в динамический?

    @rPman
    Если я верно понимаю, windows ограничивает использование динамический дисков на removable drive, именно поэтому вылетает такая ошибка, но даже если нет и тебе удастся сделать диск динамическим (вручную с помощью штатной консольной утилиты diskpart, там нет кучи ограничений ее графического аналога, может и тут прокатит), то есть другое ограничение:
    https://ru.wikipedia.org/wiki/Динамический_диск
    Windows не может быть установлена на Dynamic Disk, что имеет неприятное следствие — из всех RAID-конфигураций Dynamic Disk загрузочным томом Windows может являться только «зеркало» (установка производится на обычный диск, потом он конвертируется в Dynamic, потом создаётся «зеркало» добавлением второй половины, с другими RAID-конфигурациями это невозможно).


    В теории наверное можно будет попытаться поставить windows на второй диск с помощью виртуальной машины, и отключив secure boot и uefi (в биосе это может наызваться legacy boot) загружаться с помощью, к примеру, grub, установленного на первый системный диск, но сам процесс установки может оказаться не простым.

    p.s. если же необходимость расширения системного диска, то можно воспользоваться символическими ссылками, перемещая каталоги, в т.ч. Program files, ProgramData, MSOCache,.. и возможно некоторые из windows (с осторожностью) на другой диск и оставляя на первом только ссылки на него. Еще я помню создавал символические ссылки на каталоги, в которые система складывает крупные обновления ($WINDOWS.~BT кажется) но делать это придется каждый раз как прилетает это обновление, в общем мониторить использование системного диска (я пытался поддерживать работу windows на старенькой машине со встроенным 32гб диском, перенося часть файлов на карту памяти, это реально но муторно).

    обязательно поковыряй профиль пользователя, очень много приложений сохраняют там гигабайты информации, включая само приложение, все прекрасно разруливается символическими ссылками - AppData\Local\переносить_этот_каталог , AppData\Local\Roaming\или_этот

    С каталогом windows есть сложность, его размер порядка 24гб (20гб сжатие ntfs) и переместить что либо от туда сложно. Дело в том что removable диски доступны в системе не сразу и если переместить критичные системные файлы на такой диск, система не сможет быть загружена. Еще проблема - сам процесс копирования, внутри очень активно используются символические ссылки ntfs, права доступа и если я верно понимаю - даже ntfs file stream, но тут я не проверял, и не всякий инструмент копирования способен правильно сдублировать структуру данных, с учетом ссылок, особенно это сложно, так как подобную операцию придется делать из другой ОС (загрузившись с флешки например). В общем я помню ломал установку, делая копирование в Far Commander (т.е. все работало но системный диск тогда стал занимать в итоге сильно больше места).

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

    @rPman
    а соответствующий голос в синтезаторе на машине есть?
    window.speechSynthesis.getVoices()

    на хроме работает
    var u = new SpeechSynthesisUtterance('Ich bin nicht sicher, dass er ein gutes Beispiel wäre.');
    u.voice=speechSynthesis.getVoices()[2]; // SpeechSynthesisVoice {voiceURI: 'Google Deutsch', name: 'Google Deutsch', lang: 'de-DE', localService: false...
    speechSynthesis.speak(u)

    upd. очень странно инициализируется в первый раз в браузере язык, самый первый раз выбирая язык может остаться язык по умолчанию, но повторная попытка через некоторое время срабатывает, полагаю браузер подгружает поддержку локально (она несколько мегабайт вестит)
    Ответ написан
  • Как разбить диск 6tb на разделы по 1tb и зазеркалить каждый либо создать Raid-1 массив?

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

    Советую только софтварный рейд.
    p.s. Об аппаратных думать надо когда контроллеры будут стоимостью с полноценный комп и то я бы дважды подумал и посчитал бы деньги

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

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

    @rPman
    В ответах все правильно сказали, но не дали собственно решения, вот оно:
    заведи поле num, в котором будет размещаться порядковый номер записи, при запросе записей делай group by num

    при каких то модификациях порядка (удаление или например вставка в середину порядка записи) делай номер с половинкой (например вставить запись между 3 и 4, то num пусть будет 3.5) и обновляй порядок
    update table set
    num = ROW_NUMBER () OVER ( ORDER BY num ) RowNum
    ...


    кстати вместо половинчатых номеров можно сначала сдвинуть все номера больше нужного (например вставить 3-им, добавляешь условие where num>3 а потом вставлять.
    Ответ написан
    Комментировать
  • Как в массив вставить цикл foreach?

    @rPman
    можно использовать array_map, на вход подаешь $_GET[CART] и функцию, обрабатывающую каждый элемент (то что у тебя внутри foreach)

    'items' => array_map(function($v){...},$_GET[CART])
    Ответ написан
    Комментировать