• Как калькуляторы считают корни?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Скорее всего раскладывают в ряд Тейлора

    Вообще "методом подбора" (он называется "Метод половинного деления") решают уравнения (ЕМНИП мат. аппарат не позволяет (в общем виде) решать уравнения степени выше 5 "нормальным" способом).

    А вообще ваш вопрос - это матан с первого курса института.
    Ответ написан
  • Как запустить jar, обернутый в exe, при помощи отдельной jdk?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Скорее всего система берет бинарник jvm через переменную окружения path. Соответственно переопределяете переменную.

    Открытая консоль (или батник) наследует переменные от системных (или от того, что их запустило), открытая в консоли или батнике программа наследует переменные окружения которые были в консоли. Соответственно в батнике прописываете переопределние path и запускаете.

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

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Для начала определитесь что вы подразумеваете под словом "ломается" - она падает(Exeption), выдает не верный результат (отличный от ожидаемого), просит сначала сводить ее в кино? (К стати, насколько я вижу она работает)

    Просто просто в несколько столбиков для каждоый строки напишите: Чему (по вашему) должны быть равны ваши переменные перед выполнением, что (по вашему) должно получиться в результате, чему на самом деле равны ваши переменные перед выполнением, что на самом деле получилось в результате.
    Ответ написан
    2 комментария
  • Это нормально, что при прерывании rsync через ctrl+c пишет в консоли "Broken pipe"?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    В Linux есть такие похожие вещи как именованный канал (named pipe) и не именованный канал (pipe). (подробнее гуглите типы файлов в Linux) Честно говоря я не помню это разные сущности или нет, в данном случае для простоты будем считать что нет.

    Конкретно это сообщение значит, что ваше приложение пытается читать/писать из/в pipe, которого нет.

    Боже мой, как же так получилось?
    Вероятно rsync использует именованные или не именованные каналы для своей работы. (например для передачи чего-то между запущенными им приложениями или его дочерними потоками.) В момент когда вы жмете Ctrl-C система начинает завершать процесс и освобождать его ресурсы (а так же убивать то, что он запустил). Вероятно один из дочерних процессов, работающих с пайпом, попытались что-то с ним сделать в том время, когда они были еще живы, а процесс-владелец пайпа уже нет (и, следовательно, пайп был освобожден при освобождении ресурсов процесса-владельца).

    Что же теперь с нами будет?
    Что успело записаться на диск - то успело. Что не успело записаться на диск - то не успело. Больше ничего не случится.
    Ответ написан
    Комментировать
  • Java Collections асбтрактный тип List?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Гуглите про суть и смысл ООП.

    Объект абстрактного класса нельзя создать. Он на то и абстрактный, что "недоопределен" и предполагает что в классах-потомках все что надо будет доделано.

    Переменная типа List может указывать на объект любого класса-потомка.

    p.s.

    Что вышесказанно в той или иной степени касается любого языка реализующего концепцию ООП (конкретные детали реализации в разных языках могут немного отличаться, суть же остается неизменной)
    Ответ написан
    2 комментария
  • Какие есть книги по C++?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Стандартный набор, который обычно советуют: Страутступ и Шильдт
    Ответ написан
    Комментировать
  • Работа с изображениями на С++, какую выбрать библиотеку?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Если это BMP - то все проще некуда - открываете картинку и все, кроме заголовка - тупо RGB в сыром виде.

    Если что-то кроме BMP - то что вообще мешает загуглить библиотеку для нужного вам формата файлов? Их много, и они легко гуглятся. Вот например https://github.com/LuaDist/libjpeg для jpeg
    Ответ написан
    Комментировать
  • Как сделать таймер завязанный на БД?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Насколько я вас понял - вам нужно на стороне клиента считать время "от начала тестирования" (или "до конца тестирования", что почти одно и тоже). С моей точки зрения стоит в базе хранить только время начала/окончания тестирования для конкретного студента.

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

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

    p.p.s.
    Ну и не забывайте про куки - если студент нажмет "обновить страницу", то в идеале он должен увидеть все тоже самое (а не заново окно логина). Тут уж, извините, не дам пояснений т.к. к вебу отношения не имею, и про куки знаю только то, что они существуют. В общем рекомендую для гугления что-нибудь "про хранение сессии на стороне сервера" и "про куки".
    Ответ написан
    5 комментариев
  • Как защитить код сервиса от хостера?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Мне кажется что
    обезопасить код продукта от копипаста
    полный доступ к файлам
    взаимоисключающие параграфы.

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

    p.s.
    Вообще где-то на забре упоминались какие-то экспериментальные разработки по аппаратной защите виртуальнйо машины от гипервизора. Но что-то я в принципиальной возможности сомневаюсь.

    p.p.s.

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

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    ЕМНИП в Qt с гуями можно работать только в основном потоке. Т.е. какие-то "тяжелые" или блокирующиеся чем-либо действия нужно делать в отдельном потоке, а потом через сигналы дергать функции в основном потоке, чтобы они меняли состояние гуев.
    Ответ написан
    Комментировать
  • Почему профилировцика памяти не совпадают с реальным использованием RAM?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Предположу что, возможно, на уровне системы какай-нибудь "ленивый" алгоритм выделения памяти и отладчик может показывать реальное колличество уже аллоцированной памяти.
    Ответ написан
  • Управление светодиодами при помощи двух штырьков?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Зависит от того, насколько строго следовать постановке задачи. Можете по I2C подключить какой-нибудь драйвер (как Александр советует).

    Можете купить обычный дешифратор 2 в 4 и просто по очереди моргать светодиодами. Если делать это очень быстро - вы не увидите что они моргают (визуально он не успеет потухнуть).

    Первый способ лучше тем, что на одну шину I2C можно повесит много очень много устройств (не только ваш контроллер для светодиодов) и он более простой с точки зрения программирования. Второй лучше тем, что пойдут любые два GPIO и дешифратор дешевле, но придется сделать более сложную программу на ардуинку.
    Ответ написан
    Комментировать
  • Реализация конечного цикла без проверки условия выхода?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Нет не возможно. У вас в любом случае будет условие. Чисто логически чтобы цикл кончился он должен кончится по какой-то причине, в отсутствии причины он не кончится.

    Другое дело, что можно кончить цикл всячески, не только "адекватно". Теоретически вы можете поменять значение PC регистра (Хотя емнип на x86 его нельзя редактировать напрямую). Но опять же если вы просто поменяете безусловно - это не цикл у вас получится, а если условно - вот вам условие выхода.

    p.s.

    У вас вообще цикла нет - вы используете (в сильно неявном,извращенном виде) рекурсию. И она тоже буде или бесконечной (пока стек не кончится) или с условием прерывания.

    p.p.s.
    А вообще не занимайтесь ерундой.

    По воводу того, как оно работает:
    Смотрим этот кусок кода:
    (arg / N) * ((int)CycleEnd - (int)CycleIteration)
    Вы вычитаете разницу между адресами функций CycleIteration и CycleEnd (я так понимаю, там должно получится -1 * sizeof(void*). Затем вы это умножаете (arg / N) (вы делите целое число на целое число, емнип оно округляется в меньшую сторону, а не по правилам математики). Кроме последней итерации (когда arg = N) у вас будет результат ноль. Т.е. вы от указателя CycleIteration отнимаете 0 и присваиваете это ptr.
    Фактически (кроме последней итерации) ptr указатель на функцию CycleIteration (вы ее вызываете рекурсивно).
    Когда arg == N вы умножаете ваш -1 * (sizeof(void*)) на 1 и таким образом вы присваиваете ptr значение CycleIteration - 1*sizeof(void*) т.е. на CycleEnd.

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

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Хочу перейти на новый уровень в разработке игр.


    Выучите английский уже наконец! Сразу перейдете на новый уровень (причем это актуально не только для геймдева, и даже не только в IT - это актуально в любой области знаний)

    Поймите уже наконец, что вся актуальная информация публикуется на английском и большая ее часть не переводится на русский (либо переводится со значителньой задержкой во времени)
    Ответ написан
    4 комментария
  • Как задать точку останова при большом иcпользовании RAM?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Вообще если у программы есть необходимость следить за своим выделением памяти - то пишется кастомный аллокатор и используется в проге.
    Т.е. вы пишете свой malloc и free c блэкджеком и другой необходимой вам функциональностью - хотите не давать больше 200мб в секунду - не даете, хотите не аллоцировать более 1Гб - не аллоцируете и т.п.
    Ответ написан
    Комментировать
  • Проблема с libstdc++.so.6?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Обратите внимание на название пакета. У DEB и RPM в конце принято писать архитектуру (i386, i686, AMD, ARMv7, MIPS, ANY и т.п.). i686 это x86 (32 битные интелы и им подобные), вам же нужна AMD64 (64 битные интелы и им подобные)
    Ответ написан
    Комментировать
  • Можно ли изменить параметр DEVNAME в udev у usb устройства?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Можно.

    На вскидку из правила можно вкинуть, для начала, все лишнее. Например ATTRS{interface}=="CP2102 USB to UART Bridge Controller" - лучше привязаться к Vendor ID и Model ID (не гарантирую что они именно так называются, за давностью лет забыл)

    К сожалению за давностью лет уже не помню как я делал (правда привязывался к конкретному порту, куда оно воткнуто).
    Ответ написан
    Комментировать
  • Как линковщик ищет функции?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Почти наверняка это функция в сторонней либе и будет из нее дергаться.
    Покрайней мере так, обычно реализовано на линкусах. Как оно на винде не знаю.
    Ответ написан
    Комментировать
  • Возможен ли будет запуск графической программы под расширением exe на Cosmos OS?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Я полагаю вы сами не очень знаете, что спрашиваете.

    Во-первых нет никакого exe. Есть MZ, PE, ELF (наверняка есть и другие, но я таковых не знаю).

    Соответственно пункт первый - смотрите умеет-ли ваш космос запускать нужный тип бинарника вообще (я так понимаю, что там у вас PE).

    Во вторых разрядность. При прочих равных, как правило на 64 битной системе можно запусакать 32 битные приложения, наоборот нельзя. Но из первого пункта есть исключение - приложение хочет сторонние библиотеки (наверняка) и они должны быть совместимы.

    Я почти уверен что у вас PE и почти уверен что не на винде вы его не запустите без сторонних средств.
    Ответ написан
    5 комментариев
  • Есть ли авторизованные учебные центры Cisco с трудоустройством?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    А зачем им брать на себя такие обязательства? Тем более что успешный студент != хороший работник и нормальные руководители это знают и лишний гемморой себе не хотят.
    Ответ написан
    Комментировать