• Как использовать другой "ситаксис" при написании Телеграмм-бота?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Как минимум - выносите логику бота в отдельные функции/классы, которые будут вызываться в функции-обработчике команды. Примерно как-то так (пример очень условный, чисто для описания концепции):

    from utils import some_func
    
    ... 
    
    @bot.message_handler(func=lambda message: True)
    def echo_all(message):
        some_func()
    Ответ написан
  • Почему утверждается, что int32_t имеет ширину точно 32 бита, если он является всего лишь псевдонимом int, который может быть больше 32 бит??

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    В рассуждениях есть ошибка.

    Да, стандарт утверждает что тип int может иметь размер не меньше 16 бит.
    Таблица имеет название "Minimum width", т.е. минимальный размер. Минимальный - это значит что int может иметь размер в 16 бит. А может иметь и 64 бита.

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

    Ошибка в рассуждениях заключается в том, что ты проводишь нить только от int32_t к int и дальше к стандарту. В то время как стандарт определяет и требования к типу int32_t тоже.
    Тип int32_t всегда и для любой модели памяти выбирается таким образом чтобы гарантировать размер в 32 бита.

    То что где-то int32_t является псевдонимом int - это не более чем временное совпадение.
    Ответ написан
    1 комментарий
  • Почему утверждается, что int32_t имеет ширину точно 32 бита, если он является всего лишь псевдонимом int, который может быть больше 32 бит??

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Смотрите документацию. Там действительно утверждается, что int32_t должен иметь размер ровно 32 бита ("exactly").

    Где вы взяли, что int32_t - это псевдоним int?
    Подозреваю, что там, где вы это видели, куча #ifdef и проверок архитектуры.
    Возмножно, на вашей системе, где int итак имеет 32 бита так оно и есть. При компиляции на другую архитектуру внезапно может оказаться, что int32_t - нифига не псевдоним к int.
    Ответ написан
    3 комментария
  • В чём отличие многопоточности и асинхронности в контексте .NET C#?

    Nipheris
    @Nipheris Куратор тега C#
    Асинхронность - это способ организации вычислений, когда код, вызывающий какую-либо операцию/подпрограмму /функцию, не дожидается завершения работы этой операции, а если ему интересен результат вычислений, то он получает вместо готового результата некий способ запросить результат позже, когда он будет готов (то, что называется промисом или фьючером или ещё как-то в зависимости от языка). Это по сути противоположность "обычному" синхронному вызову, когда вызывающий код останавливается и ждёт завершения функции, чтобы получить результат. Как это будет достигнуто - это уже другой вопрос, это зависит от сути операции, запускаемой асинхронно.

    Но ведь при классической многопоточности никакой поток так же не блокируется

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

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

    С чего бы? Асинхронный код полезен при большом количестве операций ввода-вывода - диск, сеть и т.д. Не обязательно это должно быть что-то, вычисляющееся в отдельном потоке. Вот, почитайте хорошую статью: There is no thread.

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

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    https://firebaseopensource.com/projects/firebase/s...

    Просто вводите ваш вопрос на английском
    Ответ написан
    Комментировать
  • Имеет ли вес хеш сумма в юридической практике?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я-бы попросил переделать текст договора. На момент подписания мне должны быть ясны все реквизиты. Фамилии, условия, сумма и вдруг вы подкладываете какой-то непонятный хеш. Мы же не про хеши договаривались.

    Далее. Ты говоришь - в "случае чего" - доказать. Доказательство скорее всего будет происходить в суде. Суд призовет эксперта. А он будет рассматривать не какие-то хеши а как раз именно ваши чертежи и модели и прочее. Так как именно это будет звучать в главном вопросе.
    Ответ написан
    1 комментарий
  • Нужно ли при разработке библиотеки следовать принципу одной ответственности?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Это скорее проблема версионирования, чем SRP
    Я бы дал такой ответ: тяните что хотите.
    Почему:
    - Пользователи могут начать использовать вашу версию зависимости - просто откатиться от своей
    - Вы можете выложить новую версию своей библиотеки с обновленными зависимостями
    - Увеличение продуктивности разработки: скорость, удобство

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

    P.S. Как я понял, вы думаете, что увеличение уровня абстракции метода влечет за собой обязательное использование внешних зависимостей, то это не обязательно так - все пишут велосипеды. Например, я однажды написал минималистичный парсер JS, вместо использования сторонних библиотек. Сложность по факту одна и та же, но зависимостей нет.
    Ответ написан
    Комментировать
  • Нужно ли при разработке библиотеки следовать принципу одной ответственности?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да можно. Это называется фасадом. Ограничение в single responsibility обычно относится к ООП и к классам.

    Вообще если ты фрилансер и делаешь просто заказ чтоб отдать его с концами - то тебе безразлично что будет внутри. Главное чтоб ты понимал. А соглашения по декомпозиции кода на части появляются только как результат
    коллективной работы над кодом. Тоесть ты должен спрашивать не qna, а свою команду как вам удобнее
    разрабатывать код.
    Ответ написан
    Комментировать
  • Стоит ли менять термоинтерфейс?

    hint000
    @hint000
    у админа три руки
    В интернете пишут что нужно менять раз в 6-12 месяцев.
    Это миф. Развод со стороны тех, кто на этом зарабатывает. И наивность со стороны тех кто поверил и распространяет миф.
    После 5 лет вполне можно поменять, но и то не строго обязательно. Менять нужно, если заметно, что ухудшилось охлаждение. Менять нужно, если по какой-то причине снимали систему охлаждения (например, для ремонта материнской платы или для того, чтобы лучше почистить от пыли). Если температура в норме, то лучше не лезть. Потому что всегда есть шанс накосячить. Даже в сервисном центре могут накосячить (хоть и гораздо реже, чем косячат любители).
    Ответ написан
    Комментировать
  • Что значит: "Разрешение печати До 4800 x 1200 точек на дюйм"?

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

    Если вы хотите знать, почему не удалось увеличить сверх 1200 разрешение механизма подачи бумаги, то вам нужно задавать этот вопрос непосредственно инженерам, конструировавшим этот узел. Они знают, в какое техническое ограничение упирается это разрешение.
    Если вы хотите знать, зачем тогда делали в 4 раза большее разрешение у механизма перемещения головки (и не устраивает ответ "потому что могли так сделать"), то вам нужно задавать этот вопрос маркетологам. Потому что отпечаток в 4800 x 1200, конечно, выглядит несколько лучше, чем в 1200 x 1200, но, очевидно, хуже, чем в 2400 x 2400. Но вот 4800 x 1200 инженеры смогли сделать, а 2400 x 2400 не смогли.
    Ответ написан
    3 комментария
  • Замыкания не существует?

    Stalker_RED
    @Stalker_RED
    Я немного добавил наглядности
    function one() {
      const oneVar = 'Hello!'
      let counter = 0;
      console.log('функция one работает прямо сейчас, в счетчике', counter)
    
      function two() {
        console.log(oneVar, ++counter)
      }
      
      console.log('функция one почти завершилась, в счетчике все еще ', counter);
      return two
    }
    
    const three = one();
    console.log('функция one точно завершилась, даже return сработал');
    console.log('в переменной three сейчас функция two()');
    console.log(three);
    
    
    three();
    three();
    three();
    console.log('обожемой, мы видим как менялась переменная в уже завершенной функции. чераная магия? нет - это называется замыкание!');

    выхлоп:
    "функция one работает прямо сейчас, в счетчике", 0
    "функция one почти завершилась, в счетчике все еще ", 0
    "функция one точно завершилась, даже return сработал"
    "в переменной three сейчас функция two()"
    function two() {
      console.log(oneVar, ++counter)
    }
    "Hello!", 1
    "Hello!", 2
    "Hello!", 3
    "обожемой, мы видим как менялась переменная в уже завершенной функции. чераная магия? нет - это называется замыкание!"
    Ответ написан
    Комментировать
  • Замыкания не существует?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Функция one() определяет переменную oneVar. Затем в ней определяется функция two(), в лексическое окружение которой попадает oneVar. В конце своей работы функция one() возвращает в качестве результата функцию two().
    В переменную three записывается результат работы one(), то есть функция two(). Несмотря на то, что one() уже закончила работу, переменная oneVar сохраняется в лексическом окружении функции two().
    При вызове three() фактически вызывается two(), в которой переменная oneVar доступна для использования.
    Ответ написан
  • Имеет ли вес хеш сумма в юридической практике?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Почему бы и нет? Главное - укажите это в договоре, как подтверждение того, что обе стороны принмают этот способ контроля целостности передаваемых файлов.
    В договоре необходимо указать :
    - что именно передаётся, с материальной точки зрения. В Вашем случае - указывается перечень файлов, и их основные описательные характеристики;
    - как именно передаются файлы (например - на носителе), согласно акта приёма-передачи. Стороны договорились о том, что целостность файлов подтверждается контрольной (хеш) суммой, которая рассчитыватся согласно алгоритма (MD5, SHA и т.д.) применительно к каждому бинарному файлу. Соответственно, в акте приёма-передачи указываете эти контрольные суммы, фразу что принимающая сторона проверила файлы и подтверждает что хеш суммы соответствуют указанным.
    Ответ написан
    Комментировать
  • Kак выключить редирект с http на https в FireFox?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Отключить режим «Только HTTPS»
    https://support.mozilla.org/ru/kb/rezhim-tolko-htt...
    Либо какое-то расширение типа HTTPS Everywhere.
    Если не помогает - использовать Private Mode для входа на http сайты
    Ответ написан
    Комментировать
  • Как решить задачу на c?

    GavriKos
    @GavriKos
    Ну если выше ваша попытка перенести на си, то:
    if i+1<=x:

    это так не работает, условие должно быть в круглых скобках (if это оператор), двоеточие не нужно:
    if (i+1<=x)

    int a[0]*x;


    Вот это я вообще не понял и 99% что это не будет работать. Просто почитайте в гугле как в си инициализировать массив переменной длины.

    И да - в тегах c++, в вопросе c - вы определитесь

    P.S. Логику не проверял вообще, чисто синтаксис. Кстати в цикле тоже ошибка - и тоже просто советую загуглить цикл for
    Ответ написан
    Комментировать
  • Можно ли выдавать онлайн чек на своей странице или нужно на ОФД в РФ?

    @TheBigBear
    СтарОдмины мы
    На своём сайте Вы можете "рисовать" что угодно, но это не будет являться законным кассовым чеком!
    Вы должно передать данные на фискальный регистратор, зарегистрированный должным образом на ИП или ООО в налоговой, с фискальным накопителем на 15 или 36 месяцев и иметь договор с сервисом ОФД (например, Тензор)
    Фискальный регистратор (их еще почему-то кассами зовут) может быть Ваш (стоять например у Вас в квартире, типа Атол 15Ф) и иметь возможность печатать или НЕ печатать бумажные чеки. Или можно "взять в аренду" онлайн кассу как сервис (типа Юкасса)
    В любом случае Ваша CMS сайта или 1С передаёт данные ему, тот их передаёт в ОФД, а они уже в налоговую. При передаче чека можно указать емейл покупателя или телефон, на который от ОФД и придёт ссылка на кассовый чек. Законный кассовый чек с QR кодом и проверкой в налоговой!
    Ответ написан
    Комментировать
  • Как человеку пройти сложную капчу?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну... есть люди с разными особеностями зрения. Некоторые видят буквы. А некоторые даже печатный ровный шрифт не читают. Дислексия или что-то в этом роде.

    Скорее всего у тебя просто особенность зрения или восприятия такая.

    Для меня эта капча тоже тяжело читается. Но предпослений символ - скорее всего цифра 8.

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

    saboteur_kiev
    @saboteur_kiev
    software engineer
    DNS не предполагал работу с кириллицей, и не поддерживает ее.
    поэтому придумали punycode и под капотом все работает на punycode.

    Но клиенты различных интернет-сервисов, могут punycode отображать кириллицей, например современные веб-браузеры или почтовые клиенты

    Остается вопрос, как будет отображать домен, например твой майнкрафт сервер, если он его где-то светит?
    Может быть в конфигах придется punycode тоже использовать
    Ответ написан
    Комментировать
  • Доступна ли зона GA?

    @humoured
    Вы всё на свете найдёте в коробке с карандашами
    Ознакомьтесь с официальным анонсом: https://www.afnic.fr/wp-media/uploads/2023/05/ga-d...
    Насколько я понял, управление этой ccTLD было передано много лет назад в руки сомнительному регистратору, который сделал из доменной зоны очередную помойку, раздавая помойные домены всем подряд. Сейчас зона находится в процессе передачи управления подконтрольным Габону организациям и всю помойку, включая ваш бесплатный домен, скорее всего, удалят.
    Ответ написан
    1 комментарий
  • Старый Iphone и работа моего кода в браузере?

    imko
    @imko
    Senior Scratch Developer
    Ну... что работало не сломается) Новые вещи работать не станут
    Ответ написан
    Комментировать