• Для каких задач важнее однопоток?

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

    Сохраняй в базу данных идентификатор члена группы и количество очков у него.
    При наступлении события, когда надо количество очков изменить - изменяй.
    Ответ написан
    Комментировать
  • Зачем в примере нужны фигурные скобки и функция format?

    Mi11er
    @Mi11er
    A human...
    Методы работы со строкой.

    name = "Tuti"
    # Форматная строка
    a = f"Hello {name}"
    print(a) # Hello Tuti
    
    # Метод формат
    a = "Hello {}".format(name) 
    print(a) # Hello Tuti
    
    #конкатенация строк
    a = "Hello " + name 
    print(a) # Hello Tuti


    Выбор способа, всегда за вами
    Ответ написан
    8 комментариев
  • Стоит ли идти в Embedded разработку?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Идти надо туда, чем интересно заниматься. Тем более, что в каждой области свои проблемы. У кровавого энтерпрайза может и красивые офисы на 37-м этаже, но из них тоже хочется выйти в окно. Как мне кажется, сейчас как раз такое время, когда спрос на железячников может сильно возрасти, а как следствие, и условия работы улучшатся.
    Ответ написан
    Комментировать
  • Как искать значение в сбалансированном бинарном дереве?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Насколько я понял, дерево строится по отсортированному массиву однократно и потом не меняется. Если это так, то тебе вообще не надо его строить, а бинарный поиск делать по массиву
    Ответ написан
    Комментировать
  • Что использовать для хранения файлов, картинок?

    За банку пива можно хранить файлы в S3 - это удобно и хорошо масштабируется.
    Все облачные провайдеры предлагают подобную услугу.

    Если у тебя там счёт не на терабайты идёт и сервис не очень нагруженный - выйдет очень дёшево:
    (Яндекс в качестве примера)
    https://cloud.yandex.ru/docs/storage/pricing
    + Тебя может заинтересовать CDN, который достаточно хорошо с S3 интегрируется

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

    А бесплатным бывает только сыр в мышеловке
    Ответ написан
    2 комментария
  • Есть ли статьи, которые приводят наглядные примеры того, как код на rust превосходит код на других языках?

    vabka
    @vabka Куратор тега Rust

    Особенно там, где был использован язык Си или С++

    (если исключить memory safety и fearless concurrency)
    1. Хороших плюсовиков найти всё сложнее, ибо молодые разработчики часто хотят что-то более современное/простое/приятное.
    2. Переход с какого-нибудь более высокоуровнего языка на Rust гораздо легче, чем на C++
    3. DX у Rust на порядо лучше.
    4. Код на Rust на порядок более выразительный, чем код на Си

    За счёт этого поддержка кодовой базы на Rust заметно дешевле выходит

    Например вот что Тинькофф пишет:

    Наш Процессинговый Центр занимается разработкой финансовых систем, критичных к даунтайму и времени обработки. Изначально мы делали все свои продукты либо на чистом Си, либо на плюсах (C++14), однако пару лет назад мы переписали большой кусок нашего бэкенда на Rust, и нам настолько понравилось, что теперь все наши новые процессинговые сервисы пишутся на нём.



    Мне бы хотелось видеть какое-то сравнение, что вот так стало сильно лучше и безопаснее, а вот было так написано изначально на оригинальном языке

    Это можно будет определить только если ведётся статистика по багам и они классифицируются по причинам возникновения, но такую статистику ведут не все.
    В среднем статистика показывает, что багов связанных с неправильной работой с памятью в проектах на Rust на порядки меньше, чем в проектах на C++.


    ну тут все-равно unsafe

    В проектах на Rust он явный и от него можно избавиться, завернув в безопасную обёртку, которая будет гарантировать корректную работу с памятью и ffi.
    В проектах на C++ у тебя по факту всё является unsafe.

    ну, нам еще нужен подсчет ссылок

    В плюсах тоже активно пользуются подсчётом ссылок и всякими умными указателями, если по коду не очевидно, когда можно будет освободить память
    Ответ написан
    6 комментариев
  • Завершается программа на Си из-за одной строчки кода. Что делать?

    sprintf(_playingField[16], "##################################");

    В этой строчке выход за границы массива. Массив на 16 элементов, а индексация начинается с 0. Следовательно, последний индекс равен 15.
    Ответ написан
    1 комментарий
  • Экранирование sql запросов, достаточно ли функции?

    Adamos
    @Adamos
    Самописные "защиты от инъекций" вследствие непонимания автором того, что он вообще делает, обычно убивают двух зайцев сразу.
    И оставляют дыру в безопасности, и портят данные в базе.
    Для реальной защиты подготовленного запроса, как правило, достаточно. Но если очень постараться, дырку можно проделать и в нем.
    Ответ написан
    Комментировать
  • Для тех кто пользовался сборками флибустина, стоит ли ставить сборку 10ltsc? Что по стабильности? Как долго пользовались?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ищите сборку MSDN. Автор Microsoft.
    Наименьшее число багов хотя и встречаются
    Ответ написан
    1 комментарий
  • Почему не работает программа нормально?

    Vindicar
    @Vindicar
    RTFM!
    Ты объявляешь функцию replay(), но не вызываешь её.
    А вообще, тебе тут нужен цикл, а не рекурсия.
    Ответ написан
    Комментировать
  • Почему все называют TypeScript компилируемым языком программирования?

    1. Если душнить, то никто не называет TypeScript компилируемым языком.
    Вот например что написано на официальном сайте на самом верху:

    TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.


    2. У typescript есть компилятор tsc - его называют компилятором, потому что он по определению им является.

    Но стоп, компиляция - это процесс перевода "человеческого" кода в машинный код.

    Нет. Даже если брать определение из википедии, то будет:

    In computing, a compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language).

    Никакой речи о "машинном коде" нет, как видишь)

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

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

    2. В англоязычном интернете transpiler наоборот являются подмножеством compiler.
    Compiler - такая программа, которая преобразует код с одного языка на другой, причём из одного файла может получиться N файлов.
    А tanspiler - это такая программа, которая берёт исходный код на одном языке, и преобразует его в исходный код на другом языке, причём 1 файл преобразуется ровно в 1 файл.

    Получается, что tsc - это транслятор/транспайлер, а причислять их к компиляторам или нет - это дискуссионный вопрос.
    Ответ написан
    2 комментария
  • Как создать корректный SQL триггер?

    @Akina
    Сетевой и системный админ, SQL-программист.
    если в данной таблице уже существует поле с данным товаром, то прибавить единицу к его количеству
    а если его вообще нет, то создать новое поле

    ??? Какое ещё "поле"? может, запись? ну так для этого существует INSERT ... ON DUPLICATE KEY UPDATE Statement.
    А триггеры - они для дела, а не для баловства..
    Ответ написан
    Комментировать
  • Стоит ли очищать оперативную память от массивов структур в Си?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Нет, если это локальная переменная, ничего делать не надо. Она выделяется на стеке и отчищается автоматически по выходу из функции.

    Надо вызывать free только для тех блоков памяти, который вы сами получили через malloc.
    Ответ написан
    Комментировать
  • Когда новичку нужно изучать как работает интернет, после изучения базы JS?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Уважаемый пользователь.
    У тебя из 10 вопросов 9 вопросов про то. как стать разработчиком и поменьше учить.
    Прекрати такое поведение.

    Не хочешь учиться - выбери другое направление, кроме ИТ полный мир возможностей.
    Ну или учи свою верстку, работай всю жизнь джуниором, никто тебя за уши в сеньоры не тянет и не заставляет.
    Хочешь - учи, не хочешь - не учи.
    Читай вакансии и требования в вакансиях, зачем тебе советы рандомных людей из интернета, если ты постоянно спрашиваешь почти одно и тоже, хотя тебе уже отвечали.
    Ответ написан
    18 комментариев
  • Какие книги либо материалы можно использовать для изучения фреймворка aiogram?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    aiogram - это маленький и примитивный фреймворк сам по себе. Для его изучения достаточно прочесть документацию. Но до этого надо изучить Python, asyncio, принципы работы сетей в целом и протокола http в частности, желательно базы данных, чтобы хранить состояние, алгоритмы, вроде конечного автомата, чтобы управлять состоянием, совсем хорошо ещë и понимать Linux, ведь на каком-то сервере вашему ПО надо будет работать.
    Ответ написан
    Комментировать
  • Как в языке СИ проверить существует ли файл без создания нового?

    mayton2019
    @mayton2019
    Bigdata Engineer
    FILE *handle = fopen("filename", "r")
    возвращает файловый указатель. Если открываешь на чтение - то он обычно null если файла
    не было или была какая-то другая ошибка. Детали по ошибке выдает другой системный вызов errno, streeror или
    что там еще есть другое не помню точно.
    Ответ написан
    Комментировать
  • Если написать свой сервер, хост не нужен?

    Хост - это физический компьютер. Хост тебе в любом случае понадобится. Хостом может выступать в тч твой собственный компьютер.
    Доменное имя - это просто запись, что такое-то имя соответствует такому-то ip.

    сама затея с собственным сервером глупа на корню

    Она может и не совсем глупа - при разработке ты узнаешь много нового => Это плюс к твоему обучению.
    Написать веб-сервер, который сможет конкурировать с уже существующими решениям, у тебя врядли получится.
    то какие альтернативы

    Зависит от твоей задачи.
    Ответ написан
    1 комментарий