• Django изменение файла модели, перед записью в бд?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А в чем проблема?
    В БД хранишь нужны результирующий путь. По факту аплоада делаешь таск на распаковку архива. Этот поцесс может оказаться не быстрым и закончиться ошибкой. Таск запускается, а его статус фронтенд запрашивает регулярно через АПИ, или слушает через перманентное подключение по веб-сокету - как уж реализуете. Важно, что распаковка это таск и у него есть статус и прогресс. По факту окончания загрузки помечаете в записи БД где путь, что путь актуален.
    Можно не записывать путь пока не закончится распаковка, тогда путь должен записать таск по факту своего успешного завершения.
    Ответ написан
    Комментировать
  • Как правильно находить готовые коды, плагины на разных языках?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Люди всё правильно говорят. Это не тот вопрос, которым следует заниматься способному в лучшем случае к NoCode управленцу. Так-то найти куски кода, который делает что-то, не так сложно. По ключевым словам легко найти практически что угодно на гихабе, хабре, stackoverflow, куче форумов, в документации к конкретным языкам и библиотекам. Сейчас ещё и расплодились агрегаторы кода, которые по ключевым словам выдёргивают фрагменты кода из кучи опенсурсных проектов, иногда бывают полезны, но чаще раздражают....

    Но даже если найти кусок кода или название библиотеки (на что уйдёт пять минут) - а что дальше? Чтобы понять, что делает этот кусок кода, какие у него достоинства и недостатки, какие ограничения - это нужна уже компетенция квалифицированного программиста. А вдруг этот код или эта библиотека жалко помрёт, если вместо скромных 100 байт из тестового набора скормить мегабайт осмысленных данных?

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

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

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Гуй виснет, потому что вычисления выполняются в том же потоке.
    Решение тут одно - вынести логику в отдельный поток и организовать связь между ними.
    Но лучше используйте не tk а pyqt. У него больше инструментов, в том числе и для выполнения работы в фоне.
    Ответ написан
    Комментировать
  • Как начать заниматься "серьезной" разработкой?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Владею стеком HTML/CSS/JS, Python+django/fastApi, java(для математики всякой)


    Также хоббийно занимаюсь микроэлектроникой(avr/nrf/stm)

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

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

    Я сам так сделал и не жалею. Всякие Photoshop/3DMax/радио-и-связь/игра на трубе/вязание крючком - заказчика не интересуют а вобщем даже и раздражают. Под позицию нужен профессионал а не разно-рабочий.

    UPD:
    Ответ написан
    Комментировать
  • Почему не получается преодолеть барьер в изучении программирования?

    krdpsr
    @krdpsr
    loading...
    только так - обучение через практику
    но перед этим общая теория и знакомство с языком
    Ответ написан
    Комментировать
  • Какой дистрибутив Arch Linux выбрать?

    @Drno
    Правильный выбор - ubuntu/debian/linux mint
    Ответ написан
    5 комментариев
  • Как отправить файл по TCP Golang?

    @deliro
    1. Открываешь сокет
    2. io.Copy
    Готово

    Учитывая то что tcp гарантирует доставку и порядок пакетов, больше вообще не о чем беспокоиться. Кроме шифрования, если это важно
    Ответ написан
    2 комментария
  • Индекс в субд это по сути отдельная таблица?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Странная постановка вопроса. Как будто мы тут какие-то слухи обсуждаем. А между тем всё легко и быстро гуглится. Вот можно даже начать с википедии. Там и про бинарные сбалансированные деревья ответ есть:
    https://ru.wikipedia.org/wiki/Индекс_(базы_данных)....

    Вы бы хотя бы уж привели свои источники, в коих усмотрели противоречие. Иначе получился расплывчатый неконкретный вопрос, как бдто вам про БД Одна Бабка Сказала...
    Ответ написан
    1 комментарий
  • Как выводить процесс выполнения функции на странице html - Django?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Никак. HTTP - это протокол формата запрос-ответ без состояния. Для интерактивности нужно что-нибудь типа SSE или WebSockets, а Django к ним не приспособлен сам по себе. Придётся изучать и использовать например Channels, соответствующим образом изменив как бэкенд, так и фронтенд.
    Ответ написан
    Комментировать
  • Как исправить ошибку в программе?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Приглашения к вводу данных не соответствуют заданию.
    Не использованы средства шаблонизации, которые предоставляет язык рограммирования.
    Оформление кода не соответствуют требованиям PEP8.
    Не предусмотрено согласование количества дней и ночей с окончанием слов "ночей" и "дней" в шаблоне. При числах 1,2,3, 4, 21, 22 и т.д., окончания будут неверными.
    Ответ написан
    Комментировать
  • Можно ли считать процессоры от AMD столь же универсальными, что и Intel?

    hint000
    @hint000
    у админа три руки
    помню с давних пор, что в ряде задач порой сталкивалась с указанием, что ее выполнение возможно только на Intel
    Это были фейки. Или просто ерунда. Не было таких задач в числе сколько-нибудь популярных. В принципе, можно сделать такое ограничение кому-то назло: определить процессор, если AMD то больше ничего не делать. Но в этом примерно столько же смысла, как в антироссийских санкциях. Т.е. нет разумных причин, по которым программа бы не работала на AMD. Да, расширенные наборы команд порой отличаются,
    https://ru.wikipedia.org/wiki/Расширения_архитекту...
    но они отличаются и на intel'ах разных поколений. Видели что-нибудь подобное: "если ваш intel выпущен 5 лет назад, то эта программа на нём не будет работать"? Вот и я не видел.
    Да, некоторые задачи требуют при компиляции отдельно оптимизировать под intel и отдельно под AMD. Да, разработчики могут полениться и не делать так. Тогда на AMD производительность может быть хуже или на intel производительность может быть хуже, но работать всё равно будет.
    Я пользуюсь процессорами AMD с 1997 года и за это время мне не попадалось ни одной программы, которая отказалась работать из-за AMD.

    сталкивались ли вы с ограничениями систем на Ryzen
    Нет. Будучи системным администратором, несколько лет назад собрал для офиса сервер на базе Ryzen5 3600, на нём крутятся две виртуальных машины и 40 пользователей работают через RDP в 1С с утра до вечера. Это даже не серверный процессор, но он прекрасно вытягивает такую нагрузку, прёт как ледокол. До него был сервер на базе intel i7 - жалкое подобие, пришлось поставить тот сервер в другое место, где пользователей поменьше.
    Ответ написан
    4 комментария
  • Pycharm отключился показ ошибок?

    @inworkl
    Бродяга
    Залазь в настройки Settings/Preferences - Editor - Inspections - Python, должно там лежать
    Ответ написан
    Комментировать
  • Как в Docker запустить образы на разных ядрах процессора?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    "Рационально" ядра за вас раскидает ОС со своим планировщиком, который для того и существует.
    Ответ написан
    Комментировать
  • После запуска сомнительного софта с ютуба на мой канал загрузилось 20 видео, как это произошло?

    r3dix0r
    @r3dix0r
    Если вопрос стоит - "Как это произошло?"
    Ответ - Cookie файлы. Ты запустил скорее всего троянец,скорее всего это стиллер,скорее всего склеенный с твоим кряком. После утечки твоих печенек умные люди софтом в одно нажатие загрузили на твой канал дальше софт. Все просто. Достаточно одного запуска что бы потерять все свои данные
    "что эта хрень натворила в моей системе?" - Скорее всего украла се твои данные,возможно осталась в системе,возможно майнит на твоей мощности.
    "Может ли эта фигня путешествовать через локальную сеть?" - может,но врятли.

    Вопрос к класификации малвари,RAT - есть доступ ко всей тачке, Stealer - только украли данные и так далее,больше в гугле.

    Советы:
    1. Качать с репакми или других проверенных репак сайтов.
    2. Скорее менять пароли,ставить 2fa и прочие методы безопасности
    3. Dr web cureit на ночь на всю машину.

    P.s при возможности бекапится на старые контрольные точки,если троянец не порезал их. В отсуствии упомянутых вариант поменять систему с форматирование всхе дисков в идеале. gl hf
    Ответ написан
    31 комментарий
  • Как отслеживать время у объектов в базе данных?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Средствами ноды или перечисленными в ответах способами сделать можно, но это не эффективно, обычно для такого используют менеджеры очередей, типа RabbitMQ и ему подобные.
    Ответ написан
    Комментировать
  • Как работает round robin в Nginx?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    1. Через резолв docker dns
    2. Nginx сам ничего не сделает
    3. Потому что предыдущие пункты. Правится созданием upstream, он уже разобьёт server на несколько ip из ответа DNS
    Ответ написан
    3 комментария
  • Как обслуживать юзеров по очереди телебот?

    Vindicar
    @Vindicar
    RTFM!
    global user_id
    Ну как бы вот виновник. Глобальные переменные. Они общие на всего бота и на всех пользователей. Если тебе нужно дифференцировать пользователей - делай это сам.
    Делай хранилище "ключ-значение", где ключ - ID пользователя, значение - хранимые для этого пользователя данные. При обработке сообщения читай ID пользователя, доставай из хранилища данные, и уже сообразно им обрабатывай сообщение.
    Таким хранилищем может быть простой словарь (если не нужно сохранять состояние между перезапусками бота), БД или ещё что.

    Не знаю, есть ли в telebot реализация Finite State Machine, но обычно для реализации сценариев используют её. Идея та же - для каждого юзера храним его текущее состояние (шаг в сценарии) и ассоциированные с ним данные.
    Ответ написан
    2 комментария
  • Почему индекс нулей в списке равен нулю?

    Vindicar
    @Vindicar
    RTFM!
    У тебя в строках массива несколько нулей. Метод index() по умолчанию находит только первое искомое значение. Если бы ты почитал документацию, ты бы это понял, и увидел, как это обойти.

    list.index(x[, start[, end]])

    Return zero-based index in the list of the first item whose value is equal to x. Raises a ValueError if there is no such item.

    The optional arguments start and end are interpreted as in the slice notation and are used to limit the search to a particular subsequence of the list. The returned index is computed relative to the beginning of the full sequence rather than the start argument.


    Вообще, раз уж ты ручками перебираешь строки и ячейки матрицы, используй enumerate().
    for i_row, row in enumerate(grid):  # row == grid[i_row]
        for i_col, value in enumerate(row):  # value == row[i_col]
            # далее сам
    Ответ написан
    1 комментарий
  • Как убрать выведение сообщения err1?

    Vindicar
    @Vindicar
    RTFM!
    Во-первых, нужно не if ... if ... if ... print(), а if ... elif ... elif ... else: print()

    Во-вторых,
    if c != "множення" and "додавання" and "віднімання" and "ділення" :

    Очень многие совершают эту ошибку. Так НЕ работает.
    Код вида if x != 2 or 3: эквивалентен if (x != 2) or (3 != 0):, что, в свою очередь даёт if (x != 2) or True:. А что угодно or True даст True, т.е. условие будет всегда выполняться.
    Правильно - if x != 2 and x != 3: или if x not in (2, 3):
    Для своей задачи приспособишь по аналогии.
    Ответ написан
    Комментировать