Задать вопрос
  • Как отлаживать Django в продакшн?

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

    я правильно понимаю что ты дома пытаешься на x64 windows разрабатывать, а на продакшне у тебя виртуалка почему то x86 32-битная (иначе как объяснить падения преобразования float -> int).

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

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

    @rPman
    самые дешевые bluetooth кнопки для камеры продаются везде начиная с фикспрайса

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

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

    Удостоверься что проблема не в программных ошибках и настройках, исключи свою текущую ОС из уравнения и загрузись с какой-нибудь liveusb/livecd версии (рекомендую linux xubuntu/kubuntu), настройки устройства смотри и меняй с помощью ethtool
    # ethtool enp4s0
    Settings for enp4s0:
    Supported ports: [ TP MII ]
    Supported link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    1000baseT/Full
    2500baseT/Full
    Supported pause frame use: Symmetric Receive-only
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    1000baseT/Full
    2500baseT/Full
    Advertised pause frame use: Symmetric Receive-only
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Link partner advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    1000baseT/Full
    Link partner advertised pause frame use: Symmetric
    Link partner advertised auto-negotiation: Yes
    Link partner advertised FEC modes: Not reported
    Speed: 1000Mb/s
    Duplex: Full
    Auto-negotiation: on
    master-slave cfg: preferred slave
    master-slave status: slave
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: external
    MDI-X: Unknown
    Supports Wake-on: pumbg
    Wake-on: d
    Link detected: yes
    Ответ написан
    Комментировать
  • Пропадают данные при записи в JSON файл?

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

    Но если прямо очень хочется работать с файлами (а иногда это оправдано, например при монопольном однопользовательском доступе к данным) то совет, не храни 100500 данных в одном файле, создай каталог и внутри на каждый объект создавай json файл, с именем - идентификатор этого объекта

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

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

    Многие нормальные IDE позволяют вести отладку с брекпоинтами по условию, в этом случае все эти логи не нужны и все можно решить парой прогонов, расставив в нужных местах брекпоинты
    Ответ написан
    Комментировать
  • Как сделать задание cron?

    @rPman
    php для веб сервера и php для консольных команд - разные пакеты

    чтобы в командной строке запускать php test.php нужно установить пакет php-cli, да еще и настроить его персонально и включить модули в /etc/php/8.1/cli и modst-available (тут 8.1 версия, так как на сервере их может стоять несколько)

    путь до php интерпретатора определяется
    whereis php

    ну и на последок, настраивай не глобальный крон а пользовательский, залогинившись под ним по ssh и запустив crontab -e
    тогда скрипты будут запущены из окружения этого пользователя

    следи за правами доступа на запись своих логов
    Ответ написан
    Комментировать
  • ChatGPT создаёт новый код или только дублирует существующий из примеров? Он понизит зарплаты фронтендерам-джунам?

    @rPman
    Текущую версию ChatGPT "бояться" не надо, на текущий момент это продвинутый поисковик по некой обобщенной базе данных с зачатками интеллекта, он не способен понять свои ошибки а значит нужен тот кто будет за ним следить.

    p.s. попробуйте попросить ИИ загадать число, цвет и совершить "в уме" некие действия с ним, не сообщая загаданное
    он не сразу вас поймет но научить его этому можно

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

    но это ограничение api а не логики на серверах openai
    Ответ написан
    Комментировать
  • Получить ID канала YouTube по псевдониму?

    @rPman
    тупым search вот зашел в api explorer забил туда первый попавшийся мне @xxx из поиска и указал его в качестве поисковой строки
    curl \
      'https://youtube.googleapis.com/youtube/v3/search?channelType=any&q=%40samsonprof&key=[YOUR_API_KEY]' \
      --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
      --header 'Accept: application/json' \
      --compressed
    в ответе приехали все его каналы
    Ответ написан
    Комментировать
  • Что делать если случайно отформатировал все разделы и теперь устройство зависло в фастбут?

    @rPman
    прошить заново

    fastboot это не кирпич, это штатный инструмент прошивки устройства, ищи на 4pda или xda-developers готовые инструкции, все будешь делать через штатный adb

    p.s. главное не блокировать загрузчик после установки неофийиальных/модифициарованных прошивок, а то можно действительно кирпич получить
    Ответ написан
  • Кроссплатформенное программирование на C?

    @rPman
    Ну, про "большинство" мне кажется это преувеличение.

    winapi ничем особым не отличается от других UI библиотек, чуть сложнее кастомизация, достаточно неудобная работа, C-структуры а не классы и старые форматы строк (и проблемы с кодировками). Главное его достоинство - минимальные требования к ресурсам, в том смысле что не нужно использовать какую то прослойку, формирующую свою логику и способ рисования UI только чтобы проще его было кастомизировать.. но если тебе нужен только голый функционал, тянуть весь этот лишний мусор психологически неприятно.
    Когда то очень давно
    , впечатлившись возможностями delphi и успешными потугами msvc сделать разработку UI удобным, пробовал реализовать некую IDE, позволяющую рисовать формочки и генирирующую чистый winapi код для их создания (никаких библиотек), попытка была так себе но идея витает до сих пор (надобности в этом теперь нет).

    Ответ на вопрос - использовать libwine
    Ответ написан
    4 комментария
  • Как сделать скрытый редирект в гугле?

    @rPman
    В стандарте http есть заголовок Location, где можно указать новый адрес, в т.ч. другой домен
    работает прозрачно для всех браузеров, в т.ч. многоуровневые (ссылка ссылается на другую и так многораз, браузеры отслеживают ошибки циклических)
    Ответ написан
    Комментировать
  • Почему не загружается Windows 10 с установочной флешки Rufus?

    @rPman
    Странно, надписи говорят что в efi режиме уже началась загрузка (т.е. все читается и обнаруживается) но почему то не успешно.

    Сам установочный диск где брал?

    В качестве тестового варианта, попробуй записать iso образ флешки в режиме dd-образ

    если в режиме UEFI такая флешка тоже не загрузится, переключи в биосе режим загрузки legacy mbr или old compatibility (там по разному бывает называют его)
    Ответ написан
    Комментировать
  • Какой язык программирования выбрать для изучения основ работы с алгоритмами и структурами данных?

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

    Только в этой последовательности и не наоборот.

    Очень не эффективно изучать абстрактные технологии, ведь попав на задачу, ты точно так же будешь не понимать что как зачем и почему.

    Если говорить про структуры данных в смысле - сетевые пакеты, сериализация данных на диске и хранение переменных в памяти, то изучать лучше прямо с низов, с С, затем С++ std, который основательно поломает мозг, но без основ си это будет сложнее.

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

    Если же тебе это не нужно (а бывает не нужно), то и не заморачивайся
    Ответ написан
    Комментировать
  • Для чего изучать линукс?

    @rPman
    Так уж повелось, что основное (большее) количество разработчиков работают в среде linux или средах разработки и библиотек, изначально разрабатываемых для работы в linux

    Т.е. когда ты видишь модули npm, пакетный менеджер python pip, compose от php и прочее прочее, везде изначально разработчики ориентируются на окружение linux.

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

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

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

    Linux - это отраслевой стандарт. Не linux сервера могут быть только там где тебя поставили в такие условия намеренно (вендорлок) или по скудоумию. Отсюда не изучать его - глупо и не эффективно.

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

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

    @rPman
    у каждой базы данных свои способы определения структуры
    https://www.sqlitetutorial.net/sqlite-describe-table/
    Ответ написан
    Комментировать
  • Из системы пропал HDD диск. Можно ли восстановить?

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

    Первое нужно удостовериться что причина пропажи софтварная (какой то гдюк в конфигурации ОС) или аппаратная.

    Для этого достаточно загрузиться с чистой (не тронутой кривыми программами) операционной системы, настоятельно рекомендую linux liveusb, какую-нибудь xubuntu более чем подойдет, там посмотреть и диски и разделы и файлы почитать и все в графическом интерфейсе.

    Если linux диск не увидит, можно заняться аппаратными причинами:
    * сменить кабель, которым он подключен (можно вообще извлечь все диски кроме одного проблемного)
    * сменить порт, в который он подключался на материнке (редко но бывает ломается контроллер выборочно по портам)
    * сменить компьютер на заведомо рабочий, чтобы исключить проблемы с материнской платой вообще (проверь, виден ли диск у друга или поищи внешний usb контроллер)

    Если стало ясно что причина в железе - нести в сервис восстановления данных, если данные важны или на мусорку

    p.s. если причина в настройках ОС то это странное, советов у меня мало,.. например найти в реестре остатки информации о диске (в windows каждый диск ставится виртуальный как бы драйвер даже на разделы) и удалить их, формально при подключении диска через другой порт появятся новые записи
    Ответ написан
    3 комментария
  • Разные версии игры для разных регионов?

    @rPman
    https://developer.android.com/google/play/publishi...
    в настройках разных версий регистрируете разные фильтры, там точно есть фильтры вплоть до локации по gps (но наверное это хардкор), я с ходу не нашел языковых фильтров но как я понял все там есть.
    Ответ написан
  • Можно ли получить вирус на пк если скачать ехе файл и не открывать его?

    @rPman
    в windows Да, с оговорками

    Были уязвимости в проводнике windows, которые позволяли запускать злонамеренный код просто при просмотре каталога в проводнике

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

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

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

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

    @rPman
    Так чем не нравится шаблон?

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

    temlate <typename Derived1Enum> inline void Derived1::_someMethod(const Derived1Enum _state) {
    ...одинаковый код...
    state = _state
    ...одинаковый код...
    }
    void Derived1::someMethod() {
    _someMethod(Derived1Enum::SomeStateDerived1)
    }
    void Derived2::someMethod() {
    _someMethod(Derived2Enum::SomeStateDerived2)
    }

    upd. подправил с использованием шаблона
    Ответ написан
  • Как внутри javascript'а запустить php код?

    @rPman
    На тот случай, если автор вопроса буквально хочет то что сказал а не то что логично подразумевают все тут ответившие, дам ответ:

    есть возможность запустить php и не только в браузере, с помощью крутой технологии wasm (это подмножество javascript, работающее за счет ряда ограничений значительно быстрее универсального js, в него компилируют почти любые программы и заставляют их работать в браузере)
    Ответ написан
    Комментировать
  • Новый ПК, намертво зависает при любой нагрузке. В чём проблема?

    @rPman
    Мемтест тоже не проходит, пару минут и зависает.
    вот этот момент говорит что не обязательно проблемы с охлаждением

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

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

    так же нельзя исключать проблемы с материнкой или блока питания, правильное выявление сбойного компонента это буквально тестирование по отдельности своих компонентов в заведомо рабочем конфиге
    Ответ написан
    1 комментарий