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

    0xD34F
    @0xD34F
    Я слышал, что котангенс - это единица, делённая на тангенс. Или косинус, делённый на синус. И ещё будто бы есть формула приведения, выражающая котангенс через тангенс разности π/2 и исходного угла.

    Ну а функции вычисления косинусов, синусов и тангенсов в стандартной библиотеке есть.
    Ответ написан
    Комментировать
  • Что делать, если на почту пришло письмо от МВД на имя администратора домена?

    Nomad_77
    @Nomad_77
    Product manager at habr.com
    Так всё элементарно:
    Поставлено 2 вопроса:
    - Являетесь ли заказчиком услуги? (Нет, ибо ваш с дефисом)
    - Кем осуществляется администрирование (Не знаете, ибо не знаете)

    Всё. В этой информации нет ничего ужасного.
    Ответ написан
    5 комментариев
  • Что делать, если на почту пришло письмо от МВД на имя администратора домена?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Домен gdzvip.ru не ваш? Так и пишите, что заказчиком услуги по регистрации домен вы не являетесь, администратором данного домена также не являетесь, информации о текущих владельце и администраторе домена не имеете.
    Ответ написан
    12 комментариев
  • Сколько памяти занимает int в C?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Конкретный размер int зависит от архитектуры, под которую идёт компиляция. Начиная со стандарта C99 добавлены платформонезависимые типы, для int они определены в stdint.h
    Ответ написан
    Комментировать
  • Зачем в Linux ограничение на количество открытых файлов?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Лимит на количество открытых файлов есть во всех операционных системах, в Windows в том числе. А нужен он потому, что на каждый открытый файл в специальной области памяти ядра операционной системы создаётся дескриптор. Область эта не безгранична и если её исчерпать, система может высыпаться в корку. Никому не понравится операционка, которую можно завалить просто открывая файлы и не закрывая их.
    Ответ написан
    Комментировать
  • В какую энергию преобразует CPU потребляемое электричество при своей работе?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    CPU производит информацию, а это субстанция нематериальная. А приходящее в него материальное электричество практически полностью преобразуется в тепло, и ооооочень маленькая доля - в электромагнитное излучение.
    Ответ написан
    1 комментарий
  • Что быстрее рендерится-спрайты или модели?

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

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Я в крипторах не силен. Если можете, скиньте примеры криптора программы на ассемблере и какую нибудь литературу.


    А зачем вам тогда ассемблер в данном случае?

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

    Но пытаться написать программу, которую выполняет непонятную вам задачу, писать ее на языке, который вы не знаете, вдобавок сразу выбрав не hello world а криптор и ассемблер? Совершенно бессмысленная затея.

    Хакерами становятся не так. Хакерами становятся методом изучения многих технологий, а не "мне бы только самое важное"
    Ответ написан
    4 комментария
  • Сохранится ли информация на жестком если его вытащить?

    Jump
    @Jump
    Системный администратор со стажем.
    Да, сохранится, ничего не будет, в любое время вы сможете загрузиться с него.
    Ответ написан
    Комментировать
  • Ваш отзыв о надежности Arduino для умного дома?

    @AlexSku
    не буду отвечать из-за модератора
    Сейчас, по прошествии времени, вы стали бы делать такой же проект на Arduino или на чём-нибудь другом?

    Если вы в Москве, то с 31 окт. по 2 ноября посетите выставку "Умный дом" в экспоцентре. Там узнаете, что есть ПЛК (фирм Siemens (Simatic), Schneider Electric...) со специальными языками программирования (почитайте про Codesys), а также распределённые сети (KNX), где применяется конфигурирование.
    Ответ написан
    8 комментариев
  • С чего начинается создание механических штуков на электронике, микроконтроллерах?

    @evgeniy_lm
    Начни с книг Борисов В.Г. "Юный радиолюбитель" и Отряшенков Ю.М. "Юный кибернетик". Книги очень старые, описанные проекты повторять не стоит, но теория расписана очень хорошо. Для того чтобы разобраться в современных реалиях подойдет что то вроде Массимо Банци. "Arduino для начинающих волшебников"
    Ответ написан
    1 комментарий
  • Как написать путь файла с пробелами в функции system в C?

    @Mercury13
    Программист на «си с крестами» и не только
    Заэкранировать кавыки.
    system("gcc \"C:/Folder/My Folder/example.c\"" );

    Точно так же экранируется и обратный слэш, если вдруг потребуется.
    system("gcc \"C:\\Folder\\My Folder\\example.c\"" );


    Экранирование символов — механизм, имеющийся в текстовых языках и протоколах. Он служит, чтобы символы, которые считаются служебными и имеют особое значение, этого значения лишить и объявить «просто символами». Нам нужно двойное экранирование: для ОС (строка с пробелами закавычивается) и для Си (перед кавычкой слэш).
    Ответ написан
    Комментировать
  • Ubuntu Как запустить программу?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    chmod +x samp03svr
    ./samp03svr

    и не сиди под рутом.
    Ответ написан
  • Как работает библиотека Irremote.h?

    Можно открыть библиотеку и посмотреть. По умолчанию на винде в C:\Program Files (x86)\Arduino\libraries\RobotIRremote\srcI\IRremote.cpp
    Исходя из беглого анализа, то:
    // initialization
    void IRrecv::enableIRIn() {
      cli();
      // setup pulse clock timer interrupt
      //Prescale /8 (16M/8 = 0.5 microseconds per tick)
      // Therefore, the timer interval can range from 0.5 to 128 microseconds
      // depending on the reset value (255 to 0)
      TIMER_CONFIG_NORMAL();
    
      //Timer2 Overflow Interrupt Enable
      TIMER_ENABLE_INTR;
    
      TIMER_RESET;
    
      sei();  // enable interrupts
    
      // initialize state machine variables
      irparams.rcvstate = STATE_IDLE;
      irparams.rawlen = 0;
    
      // set pin modes
      pinMode(irparams.recvpin, INPUT);
    }
    
    //само прерывание
    ISR(TIMER_INTR_NAME)
    {
      TIMER_RESET;
    
      uint8_t irdata = (uint8_t)digitalRead(irparams.recvpin);
    
      irparams.timer++; // One more 50us tick
      if (irparams.rawlen >= RAWBUF) {
        // Buffer overflow
        irparams.rcvstate = STATE_STOP;
      }
      switch(irparams.rcvstate) {
      case STATE_IDLE: // In the middle of a gap
        if (irdata == MARK) {
          if (irparams.timer < GAP_TICKS) {
            // Not big enough to be a gap.
            irparams.timer = 0;
          } 
          else {
            // gap just ended, record duration and start recording transmission
            irparams.rawlen = 0;
            irparams.rawbuf[irparams.rawlen++] = irparams.timer;
            irparams.timer = 0;
            irparams.rcvstate = STATE_MARK;
          }
        }
        break;
      case STATE_MARK: // timing MARK
        if (irdata == SPACE) {   // MARK ended, record time
          irparams.rawbuf[irparams.rawlen++] = irparams.timer;
          irparams.timer = 0;
          irparams.rcvstate = STATE_SPACE;
        }
        break;
      case STATE_SPACE: // timing SPACE
        if (irdata == MARK) { // SPACE just ended, record it
          irparams.rawbuf[irparams.rawlen++] = irparams.timer;
          irparams.timer = 0;
          irparams.rcvstate = STATE_MARK;
        } 
        else { // SPACE
          if (irparams.timer > GAP_TICKS) {
            // big SPACE, indicates gap between codes
            // Mark current code as ready for processing
            // Switch to STOP
            // Don't reset timer; keep counting space width
            irparams.rcvstate = STATE_STOP;
          } 
        }
        break;
      case STATE_STOP: // waiting, measuring gap
        if (irdata == MARK) { // reset gap timer
          irparams.timer = 0;
        }
        break;
      }
    
      if (irparams.blinkflag) {
        if (irdata == MARK) {
          BLINKLED_ON();  // turn pin 13 LED on
        } 
        else {
          BLINKLED_OFF();  // turn pin 13 LED off
        }
      }
    }

    Идет запуск таймера с периодом 0,5мкс и разрешение прерываний + соответственно чтение состояний высокий/низкий уровень. А дальше уже функции разгребания полученных MARK и SPACE.

    Т.е. до функций декодирование работает просто, как лог. анализатор, читая лог. уровни каждые 50мкс и сохраняя их.
    uint8_t irdata = (uint8_t)digitalRead(irparams.recvpin);


    Аналогично можно узнать о работе других библиотек.
    Ответ написан
    Комментировать
  • Почему не видит функцию из библиотеки в Ардуино?

    @Mercury13
    Программист на «си с крестами» и не только
    Запомни раз и навсегда! Inline не создаёт кода, создаёт факт его использования где-либо.
    С одной стороны, inline-функция при каждом использовании должна быть определена. С другой, она не попадёт в объектный файл сама по себе.
    Потому inline держат в хедерах (кроме хитрых случаев вроде private inline, когда синтаксически нельзя эту функцию вызвать откуда попало, а хедер лучше не засорять).

    Когда доберётесь до шаблонов Си++ — они обладают теми же свойствами. Шаблон не создаёт кода, создаёт расшаблонивание. И тоже в хедерах, кроме хитрых случаев вроде private template или шаблона, у которого есть ровно N предопределённых специализаций и (N+1)-я не нужна.

    А вот полная специализация шаблонной функции типа template<> (в угловых скобках пусто, не inline) создаёт и ей место в CPP.
    Ответ написан
    4 комментария
  • Механическая клавиатура в офисе - как сделать щелчок менее громким?

    RusTech
    @RusTech
    Щелчок же это особенность переключателя и те, что есть, тише не сделать. Покупай новую клаву c mx silent red например.
    Ответ написан
    1 комментарий
  • Как защитить git-репозиторий от компроментации?

    Sly_tom_cat
    @Sly_tom_cat
    .
    Скомпроментировать сервер можно по разному.

    Если на сервере получили удаленно рута то вам ничего не поможет получить с сервера все что на нем размещено.

    И решать такие вопросы нужно не на уровне прикладного софта (к которому относится GIT), а на уровне защиты самого сервера от угроз. Иными словами нужно не о шифровании в гите думать, а о том как защитить сервер от компроментации.
    Ответ написан
    Комментировать
  • На чем основаны потери в электронике зимой?

    @mafusailmagoga
    Дело не в транзисторах. Если они там на что и влияют - то это мизер.

    А исключительно в свойстве питания.
    В литиевых аккумуляторах.

    Если бы у вас был не литиевые аккумуляторы, а литиевые БАТАРЕЙКИ одноразовые - уверяю вас, - вы бы и в минус 30 градусов Цельсия ничего бы не заметили.
    Ответ написан
    Комментировать