Задать вопрос
  • Как монетизировать домашний сервер?

    @Everything_is_bad
    Про сдачу под хостинг, вопрос задавался 100500 раз, в общем случае никак, только если знакомым (это не считая того что гарантировать нормальный интернет и электричество ты всё равно не сможешь), иначе за спам отвечать тебе, а там может быть и что-то более серьезное.
    Ответ написан
    5 комментариев
  • Почему все говорят что писать ботов это сложно?

    Vindicar
    @Vindicar
    RTFM!
    А сложность начинается, как только задачи, стоящие перед ботом, перерастают уровень примера в документации видеотуториале пятилетней давности.

    Нужно сделать несколько под-команд у команды. Напишу цепочку if-elif-else, делов то. Ой, а теперь простыня кода на пять экранов, в которой фиг чего найдёшь. Потому что нет привычки структурировать код.

    Нужно, чтобы несколько команд/событий формировали цепочку (сценарий). Например, пользователь отправил тре сообщения, первое с именем, второе с возрастом, третье с адресом. Ой, а как это сделать вообще? Не зная понятия "конечный автомат" (finite state machine, FSM), очень трудно догадаться, как тут поступить.

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

    Нужно, чтобы бот выполнил длительную задачу, и написал сообщение, когда она выполнится. Не вопрос, напишу функцию, вызову её, а сразу после отправлю сообщение. Ой, а бот не отвечает! Потому что рабочий цикл asyncio занят этой длительной операцией и не может отреагировать на поступающие данные. Нужно иметь хорошее представление о том, как работает асинхронная программа.

    Нужно добавить боту графический интерфейс - админку. Ой, а работает или интерфейс, или сам бот! Потому что нужно представлять, как устроено большинство GUI-фреймворков, и как устроена асинхронное приложение. А заодно понимать многопоточность, вопросы синхронизации действий между двумя потоками, и особенности работы с asyncio в многопоточных приложениях. Потому что одним потоком тут обойтись будет очень непросто.

    Нужно хранить данные в БД. Ой, а почему у меня проблемы при записи в БД имени пользователя? А потому что погромист собирает SQL-запрос через форматирование строк. Надо было почитать доки, чтобы наткнуться на prepared statements, они же parameterized queries.

    Нужно хранить данные в БД. Вот только данные имеют связи многие-ко-многим. Я знаю! Я буду просто добавлять или удалять столбцы в таблицу! Потому что не освоены даже азы проектирования БД. Тут уже nuff said. И да, я такое видел на этом сайте.

    Незнание средств языка и основных приемов построения алгоритмов и структур данных приводит к диким велосипедам, которые создают больше проблем, чем пользы. Особенно если к этому добавляется нежелание находить и читать документацию на фреймворк, на котором построен бот.
    Ответ написан
    2 комментария
  • Почему не делают процессоры с тактовой частотой десятки ГГц?

    15432
    @15432
    Системный программист ^_^
    Ограничения текущей кремниевой технологии. Для повышения частот нужно переходить на другие материалы, это уже прорабатывается и рассматривается. Пока что выгоднее фигачить больше ядер, чем увеличивать гигагерцы.
    Ответ написан
    4 комментария
  • Почему не делают процессоры с тактовой частотой десятки ГГц?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Физика и материалы. На уровне транзистора частота - это то, как быстро транзистор может переключаться из одного состояния в другое. Это требует затрат времени и энергии. Чем быстрее транзистор переключается - тем больше частота. Чтобы быстрее переключить транзистор можно приложить больше энергии, а больше энергии - больше тепловыделение из-за сопротивления. А чем больше температура - тем больше сопротивление и нагрев ещё выше. Вместе с ростом температуры меняются и свойства транзисторов, и то, как они работают. Плюс каждое переключение тоже требует затрат энергии и тоже увеличивает тепловыделение. Плюс ещё и надо всю эту энергию подвести к каждому транзистору - это тоже требует линий, по которым течёт ток и, которые тоже выделяют тепло. Ещё есть, например, такие факторы, как скорость света и синхронизация сигналов в разных частях микросхемы - из-за чего приходится замедлять и удлинять некоторые линии связи между транзисторами, чтобы в нужном месте сигнал пришёл в нужное временное окно. А в современных процессорах миллиарды транзисторов. И каждый из них должен работать в чётко в нужное время. Не забываем, про то, что даже два одинаковых транзистора могут чуток отличаться характеристиками. А из-за уменьшения техпроцессов ещё надо учитывать различные квантовые и пограничные эффекты. И такого рода факторов - огромное количество. Поэтому и разрабатывают постоянно новые виды транзисторов, новые материалы, новые средства производства и прочее.

    На самом деле рост частоты процессоров есть - четверть века назад процессоры на полтора-два гигагерца были нормой. Сейчас уже норма - 4-5 гигагерц. Так что прирост частоты есть - просто очень медленный. На самом деле есть транзисторы и даже процессоры (конечно, очень простые и ограниченные) на терагерцы - это очень узкоспециализированные устройства. Например, такие работают в детекторах ускорителей частиц - ATLAS и CMS в большом адронном коллайдере. Они охлаждаются жидким гелием и работают при температуре чуть выше абсолютного нуля. Там вообще очень сложная многоступенчатая система из нескольких вычислительных систем, которые фильтруют первичные потоки данных объёмом в террабиты/с. Или, ещё например терагерцовые сканеры на десятки и сотни терагерц.

    Ну и добавлю возможно не всем очевидную вещь: резкие технологические скачки не выгодны большому бизнесу - выгоднее доить потребителей и медленно наращивать ТТХ.
    Ответ написан
    15 комментариев
  • Какую оперативную память использует Dell для своих серверов?

    @SunTechnik
    Если известен service tag сервера, то на support.dell.com можно поднять изначальную конфигурацию сервера.

    Память подбирают не по производителю, а по параметрам (нужна полная маркировка модуля памяти).
    Не видел что бы dell комплектовал свои сервера памятью kingston, но работать, скорее всего будет.
    Kingston не делает своих микросхем памяти, а использует чужие чипы.
    Ответ написан
    1 комментарий
  • Царапины на графическом чипе критично?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Нет, не критично. Особенно если металлическая крышка или царапина неглубокая. На кристалле сверху обычно достаточно толстый слой и неглубокие царапины никак не влияют на нижние слои. Главное - чтобы сколов не было.
    Ответ написан
    Комментировать
  • Почему не срабатывает удаление класса?

    dmitryfx
    @dmitryfx
    1) нет такого метода getElementbyId, есть getElementById
    2) Если не обернуть скрипт в window.addEventListener( 'load', () => { //script }); то на этапе выполнения скрипта getElementById вернут null, т.к. эти дом-элементы еще не созданы.

    Учитесь пользоваться devtools и средой разработки, вроде VS Code с плагинами, они вам не дадут ошибаться в названиях методов (метод querySelectorALL тоже не существует)
    Ответ написан
    Комментировать
  • Как располагать стойки / шкафы в цоде?

    hint000
    @hint000
    у админа три руки
    не понимаю как должны быть устроены эти ваши цоды

    у меня будут 2 стойки / шкафа с серверами
    2 шкафа - это не ЦОД.
    ЦОД - это 200 шкафов или 2000 шкафов, а у вас только серверная комната.
    Как устроены нормальные серверные комнаты я скажу. Ставят кондиционер или несколько кондиционеров, чтобы их мощность по теплу была не меньше, чем потребляемая мощность всего оборудования в комнате. Температура на кондиционерах выставляется 16..20 C. Если критично, то добавляется мониторинг климата (есть такие железки). Кстати, влажность тоже важна, кондюки подсушивают воздух, а это плохо для работающего железа (плодится статическое электричество и может устроить кирдык железу), так что в одной компании даже ставили вёдра\тазики с водой, чтобы не пересушить воздух.
    Поскольку люди постоянно не находятся в серверной, то обычно принудительную вентиляцию там не делают, так и с пылью меньше проблем. С другой стороны, даже небольшая вентиляция поможет нормализовать влажность.
    Ответ написан
    Комментировать
  • Какой тип слияния строк использовать выгоднее?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    def proc1(b: str) -> str:
        return 'A' + b
    
    def proc2(b: str) -> str:
        return f'A{b}'
    
    dis.dis(proc1)
    
    #  2           0 LOAD_CONST               1 ('A')
    #              2 LOAD_FAST                0 (b)
    #              4 BINARY_ADD
    #              6 RETURN_VALUE
    
    dis.dis(proc2)
    
    # 5           0 LOAD_CONST               1 ('A')
    #              2 LOAD_FAST                0 (b)
    #              4 FORMAT_VALUE             0
    #              6 BUILD_STRING             2
    #              8 RETURN_VALUE


    %timeit proc1('b')
    # 72.7 ns ± 0.688 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)
    %timeit proc2('b')
    # 74.6 ns ± 0.689 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)


    Первый вариант немного выгоднее
    Ответ написан
    Комментировать
  • На что Windows выделяет столько памяти?

    @Drno
    Винда не предназначена работать без перезагрузки. на серверных версиях такая же проблема бывает.
    Надо перезагружать
    Если не пользоваться сном и гибернацией, не выключаться ПК - возможно станет чуть получше
    Ответ написан
    2 комментария
  • Как работают сервисы "Идентификация посетителей" (получения номера телефона)?

    @Komrus
    CIO
    Статья с разбором одного из таких сервисов:
    "Перейди по ссылке, и я узнаю твой номер"
    https://habr.com/ru/articles/819595/

    Схожий вопрос и много ответов/комментариев:
    Как определяют номер телефона у посетителей сайта?
    Как определяют номер телефона у посетителей сайта?
    Ответ написан
    Комментировать
  • В чем смысл public _ {get;set} в c#?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Есть поля и есть свойства. Доступ к свойству осуществляется через методы - получения, записи, добавления или вычитания свойства. У полей нет отдельных методов доступа - используется только стандартный механизм доступа. RTFM:
    classes and structs -> fields
    classes and structs -> properties
    Ответ написан
    Комментировать
  • Как установить линукс на ноутбук с флешки?

    @pfg21
    ex-турист
    поставить на флешку ventoy, и уефи и мбр он умеет.
    уже вентой загрузит исо-образ линухи, просто скопировать исошник на флешку.
    брать лайв-сд образ линухи и далее с помощью гуя заинсталить линуху.
    вентою можно также подсунуть исо образ с виндой.
    Ответ написан
    Комментировать
  • В чем смысл public _ {get;set} в c#?

    Потому что так исторически сложилось.
    1. Очень многие механизмы раньше (а какие-то и сейчас) работают только со свойствами, но не с полями.
    А если они и умеют работать с полями - часто по-умолчанию они с полями не работают.
    (Это относится ко всяким сериализаторам, ORM, и другим штукам, которые работают с объектами через рефлексию, создают прокси)

    2. Даже если ты делаешь автосвойство - ты всё равно можешь делать с ним всё то же самое, что и с обычным свойством: вынести его в интерфейс, сделать виртуальным и переопределить в наследниках, а потом обратиться к нему не на конкретном типе, а на интерфейсе. Это может быть очень полезно, а иногда и необходимо в некоторых случаях

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

    По сути всё.
    Сказки про инкапсуляцию оставим для учебников, так как если мы делаем какую-то тупую DTO-шку, то никакой пользы от обращения через свойства мы не получим.

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

    Те же рекорды (record, record struct) вообще не позволяют тебе объявить поля и при этом скрывают многословность свойств.

    к примеру, не сделать этот int отрицательным

    На самом деле это очень редкий кейс.
    Зачем делать какую-то валидацию, если можно изначально использовать тип, который не допускает отрицательных значений?

    но вот смысл автоматических свойств я так и не могу осознать, хоть убейте

    Смысл автосвойств - чтобы не писать руками { get {return x;} set {x = value;}}.
    А смысл свойств вообще - чтобы можно было вынести в интерфейс, переопределить, итд.

    А ещё у свойства я могу не писать set или вместо set написать init и required, чего я не смогу сделать в классе с полями.
    Да, у поля можно написать readonly и получить по сути то же самое, но тогда его надо будет обязательно через конструктор инициализировать.
    Ответ написан
    3 комментария
  • MacBook Pro 16 i9 в 2025 году актуален ли?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Нет. Сейчас брать мак имеет смысл только на арме с минимум 16Гб ОЗУ. При наличии бюджета - берите с максимальной конфигурацией ОЗУ. Аир на м2 лучше не брать. Аир - если важна компактность и лёгкость, про - если нужна производительность прежде всего. В целом мак на арме - отличнейшая рабочая машина.
    Ответ написан
    1 комментарий
  • Можно ли обойтись одним сервером для фронта и бэкенда?

    @historydev
    Mistkerl, drück den Knopf.
    Смотря какой, если это самый обычный "хостинг" тогда не выйдет т.к. там лишь один доступный порт.
    Если впс - то можно, поднимаешь каждый сервер на своём порту и обращаешься по адрес:порт или ставишь nginx и настраиваешь домены необходимые.

    Для твоей задачи хватит одного сервера без каких либо проблем - роуты меняться будут и всё.
    - То есть самого простого хостинга будет достаточно тоже.
    Ответ написан
  • Куда надо устанавливать Python и его библиотеки?

    Maksim_64
    @Maksim_64
    Data Analyst
    Правильно создавать виртуальные окружения для каждого проекта и устанавливать библиотеки в виртуальные окружения.

    Учись сразу делать правильно, интернет полон обучающих материалов, как это делать.
    Ответ написан
    6 комментариев
  • Какой процессор посоветуете?

    xez
    @xez Куратор тега Железо
    TL Junior Roo
    Lga1700 мёртвый сокет же. Если хочется на интеле - то лучше на 1851. Ну и 13-14 серии лучше обходить стороной.
    Насчёт процессоров АМД - никаких «нежданичков» там давно нет.
    Ответ написан
    5 комментариев
  • Как добавить в дату, записанную в строке, нули перед месяцем и днём?

    без циклом мапов и лямбд

    a = '2021-1-2'
    '{}-{:>02}-{:>02}'.format(*a.split('-'))
    '2021-01-02'
    Ответ написан
    1 комментарий
  • Как завершить работу консольного приложения?

    Lord_of_Rings
    @Lord_of_Rings Куратор тега Python
    Дунадан - северный странник. Злой, но очень добрый
    Попробуйте
    subprocess.run(
        ["dotnet.exe", "путь к dll", "параметры"],
        input='\n',       
        text=True, 
        capture_output=True, 
        check=True
    )
    Ответ написан
    Комментировать