• Какие знаниями java нужно обладать чтобы переходить на kotlin?

    xez
    @xez
    TL Junior Roo
    Разрешаю изучать Котлин с любым уровнем знания джавы, в том числе и без знания джавы.
    Ответ написан
    Комментировать
  • Почему postgres отвечает джанго отличные от реальности данные?

    @KingstonKMS
    Задать часовой пояс в конфигурации или для сеанса. Подробнее https://postgrespro.ru/docs/postgresql/9.6/datatyp...
    Ответ написан
    5 комментариев
  • Как рассчитать температуру воды в общей емкости?

    vabka
    @vabka
    Токсичный шарпист
    По формуле теплоёмкости.
    Чтобы нагреть 500 литров воды с 20 градусов до 45, нужно 4200дж/кг*К*500кг*(45-20)=52500000 дж = 52500 кДж

    в минуту мы гоняем по 2 литра, которые нагреваем до этих 45 градусов, получается мы будем гонять по 210 кДж.

    Получается 52500/210 чуть больше 4х часов.
    Но! Это нижняя граница, тк вода постепенно перемешивается и в минуту уже будет передаваться меньше 210 кДж.
    + С какой-то скоростью тепло будет уходить, тк бочка не термос, причём чем выше температура, тем быстрее будет уходить тепло.
    Строго говоря, до 45 градусов вода вообще может никогда и не нагреться, если теплообменник нагревает воду ровно до 45 градусов, тк пока вода крутиться - какое-то количество тепла уйдёт и будет температура 44.99999
    Ответ написан
    9 комментариев
  • Почему видеокарта с меньшим потреблением требует более сильный БП?

    @lonelymyp
    Хочу вылезти из минуса по карме.
    Если сейчас работает прекрасно, то можно не менять, общее потребление компьютера только снизится.
    Ответ написан
    Комментировать
  • Почему видеокарта с меньшим потреблением требует более сильный БП?

    @kalapanga
    https://www.nvidia.com/ru-ru/geforce/graphics-card...
    У них там в сносках есть объяснение. Блок питания же не только видеокарту кормит. Предполагается, что более мощная видеокарта будет стоять в более мощной и прожорливой системе в целом. Там так и написано "Требования к питанию определяются в зависимости от конфигурации системы."
    Так что если у Вашего блока честные и надёжные ватты, то сразу бросаться менять его не обязательно.
    Ответ написан
    Комментировать
  • Как формировать сырые SQL запросы максимально эффективно?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Обычно если в запрос может быть передано значение, а может и нет, делают так:
    ... AND (column = {parameter} OR {parameter} IS NULL) ..

    При подстановке параметра сервер уже на этапе построения плана выполнения запроса, зная значение {parameter}, получит либо
    ... AND (column = {parameter} OR FALSE) .. ==> ... AND (column = {parameter}) ..
    либо
    ... AND (column = {parameter} OR TRUE) .. ==> ... AND (TRUE) ...

    PS. Чтобы не геморроиться с определением, когда ставить WHERE, начальный шаблон делают такой:
    SQL = "SELECT * FROM USERS WHERE 1=1 {} LIMIT %s OFFSET %s"

    и все дополнительные условия формируют в виде
    AND {условие}
    Тогда не надо оглядываться, первое это условие или нет.

    Само же условие 1=1 будет обращено в TRUE и отброшено опять-таки на этапе построения плана.
    Ответ написан
    2 комментария
  • Не работает библиотека Openai на python. Как исправить?

    @va_k
    У вас закончилась квота. О чём вам и сообщает ошибка
    openai.error.RateLimitError: You exceeded your current quota, please check your plan and billing details.
    Ответ написан
    Комментировать
  • Как убрать ошибку: Not Found?

    deepblack
    @deepblack
    Вот тебе ссылки на документацию, которую нужно было изучить чтобы не задавать элементарных вопросов:


    по первой ссылке конкретный ответ на твой вопрос, т.е. статику тебе нужно раздавать с помощью nginx или чем тебе удобно.
    Ответ написан
    Комментировать
  • Почему ADB не запускается и как это исправить?

    @risejs
    Потому что это консольное приложение (не имеет графического интерфейса).

    Откройте Командную строку (консоль) и в ней запускайте:
    > path/to/folder/adb.exe
    Ответ написан
    2 комментария
  • Какая временная сложность у этого алгоритма?

    miraage
    @miraage
    Старый прогер
    Не силен в этой теме, но вот какие мысли.

    Есть два списка размером M и N.
    Есть 1 цикл до M+N.
    Внутри цикла нет вложенных циклов.

    O(M+N)
    Ответ написан
    Комментировать
  • Хорошая ли стратегия разбивать монолит джанго на микросервисы джанго?

    vabka
    @vabka
    Токсичный шарпист

    этот монолит очень тяжело поддерживать, обновлять код и дебажит.

    Распилив его на два микросервиса ты получишь два микросервиса, которые ещё тяжелее поддерживать, обновлять, и дебажить.

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

    Дело пахнет скорее масштабным рефакторингом, чем разделением.
    Ответ написан
    1 комментарий
  • Хорошая ли стратегия разбивать монолит джанго на микросервисы джанго?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Смотри. Уже прошло время когда все пилили монолиты на микросервисы. Щас пошло переосмысление.
    Объективно есть 2 причины пилить. Первое - организационная. Команда по какой-то причине не хочет
    или не может поддерживать приложение. Или там что-то с бизнесом. Слияние. Поглощение. Передача
    проекта другой команде в поддержку. Тогда берут и ставят задачу раздела отвественностей.
    Конвей про это писал еще.

    И второе - это баланс нагрузки и децентрализация. Про failover тут еще даже речи нет. Это
    тяжелая тема и распилить монолит так чтобы его части были отказоустойчивы очень трудно. Более
    того в случае синхронных взаимодействий между частями микросервисов может быть даже падение
    перформанса
    . Да. Теоретики которые там пишут восторженные отзывы - совершенно игнорируют
    накладные на RPC. И не упоминают что в монолите цена RPC была равна нулю. Иногда RPC заменяют
    на MQ - но это новая архитектура и это надо полностью переделывать бизнес.

    И что делать с базой данных? Это тот еще вопрос. Я почти готов спорить что вы базу пилить не будете.
    И что в результате будет? Иммитация микро-сервисов? Где слабая связность?

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

    Но имеет смысл сделать модуляризацию монолита. Например что там...
    application
    - sales
    - hiring
    - userprofiles

    Тоже очень полезно для управления сложностью. И пускай себе будет монолит зато будет сильный
    контроль за изменениями.
    Ответ написан
    6 комментариев
  • Хорошая ли стратегия разбивать монолит джанго на микросервисы джанго?

    @Jack444
    Вообще на самом деле джанго можно сделать аля-микросервисным если рассматривать каждое приложение как отдельный микросервис.
    В Джанго можно подключить для любой модели отдельную базу данных которая может находится на отдельном сервере или другом порту.
    Всё что требуется добавить в модель следующие:
    class MyModel(Model):
        class Meta:
            using = 'default'  # дефолтная база из DATABASES из settings.py

    Использование отдельных баз данных это дело одно, но вам скорее всего хотелось бы чтобы каждое приложение работало на отдельном порту, это тоже не проблема, в каждом приложении создайте systemd.service который запустит экземляр на другом порту и делайте жесткую ссылку в systemd/system, после через nginx проксируйте по location на порт приложения.
    Чисто так технически можно перенести экземпляры на разные серверы и поправить конфиги.
    Важно чтобы секретный ключ был один и тот же везде, иначе будет много проблем, по безопасности всё ок если не раскрывать его третьим лицам.
    Как вариант секретный ключ и другие данные можно хранить в .env и подгружать их в settings.py.
    Если хотите сохранить чистоту коду, то экземляры можно раскидать по папкам, в каждой из них набросать по минималке README.txt с инфой на каком порту запущено, какие команды для остановки и перезапуска, какие паки нельзя трогать а какие можно, можно только ту в которой висит приложение а все остальные папки которые не взаимодействуют из этого приложения можно снести.

    В общем какой-то такой вариант можно реализовать, но я бы рекомендовал оставить как есть и по возможности старые сервисы переписывать на микросервисы FastAPI а новые эндпоинты сразу пилить на нём.
    Ответ написан
    Комментировать
  • Хорошая ли стратегия разбивать монолит джанго на микросервисы джанго?

    @deliro
    "Разбивать" монолит на сервисы хорошая идея только если у вас больше 500 разработчиков. Никаких плюсов кроме независимого деплоя микросервисы не имеют, зато минусов — перечислять не хватит недели
    Ответ написан
    Комментировать
  • VK api получить id текущей группы?

    @niriter Автор вопроса
    User
    разобрался, id можно получить через groups.getById без указания доп полей, и потом берется [0]['id']
    Ответ написан
    Комментировать
  • Что делать если при загрузке linux(2023.2a) с флешки я вижу GNU GRUB?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Обычно по поводу Kali совет дают один - вернись к майнкрафту :)

    Человек, который ставит Kali - не должен задавать такие вопросы.
    Человек, который задает такие вопросы - не должен ставить Kali. Если руки чешутся поставить линух - возьми астру какую-нибудь или simply linux.
    Ответ написан
    7 комментариев
  • Как открыть все порты в промежутке?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    nmap показывает не открытые порты, а открытые порты, на которых "слушает" какой-то сервис.
    Если порт пустой - кто даст ответ, что он открыт?
    Ответ написан
    Комментировать
  • Как отправить через ajax файл на сервер?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Так у вас тут
    data: {
              pk: 11,
              img: formData,
            },

    img это не картинка, это FormData. Правильнее вот так
    var formData = new FormData();
          // добавляем в объект FormData файл
          formData.append('img', file.prop('files')[0]);
          formData.append('pk', 11);
          $.ajax({
            url: "http://127.0.0.1:8000/api/v2/update-ava/11/",
            data: formData,
    ...
    Ответ написан
    1 комментарий
  • Почему функция y=x^x начинает возрастать, начиная с аргумента 1/e?

    Maksim_64
    @Maksim_64
    Data Analyst
    Потому что точка (1/e, f(1/e)), это критическая точка. Критическая точкой называется точки где функция либо не дифференцируема, либо производная функции равна нулю.
    Соответственно наша функция, y = x^x, ее производная будет x^x*(ln(x) + 1). далее приравниваем производную к нулю x^x*(ln(x) + 1) = 0 и решаем для x. Решением данного уравнения будет 1/e Подставляем 1/e в исходное функцию и получаем это вы уже нашли округленно 0.692. (1/e,0.692) - Критическая точка. А в критических точках функция меняет свое направление, то есть если до этого шла на убавление проходя через критическую точку она пойдет на возрастание и наоборот.
    И так ответ Потому что (1/e, f(1/e)) Является критической точкой.
    Также далее посредством тестов можно найти является ли критическая точка локальным минимумом или максимум в нашем случае глобальным потому что она одна. В данном случае тест легко покажет что это точка глобальный минимум. А минимум слева убывает проходит через критическую точку и начинает возрастать.
    ДОПОЛНЕНИЕ К ответу.
    Выходит, что до 1/e функция убывает, а после - возрастает. Откуда берется такая связь?

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

    Maksclub
    @Maksclub
    maksfedorov.ru
    На будущее. В продукахт Jetbrains для Go есть генератор структур, стоит просто в go файл вставить json

    Смотрите:
    63b1d4f794991298505196.gif
    Описание:
    https://www.jetbrains.com/help/go/working-with-jso...

    Итог:
    type Resp struct {
    	R struct {
    		Max   int   `json:"max"`
    		Items []int `json:"items"`
    	} `json:"r"`
    }
    Ответ написан
    1 комментарий