All streams
Search
Write a publication
Pull to refresh
4
0

User

Send message

Пользовался обоими, эклипс лучше. У него совершенно офигенная поддержка Git, вообще лучший гуй для гита из всех свободных, намного лучше вывод типов, есть go to declaration для перегруженных операторов и намного удобнее управление проектами и конфигурациями запуска (лично для меня), ещё на 100% не уверен, но понимание шаблонов у QtC, кажется, хромало. Использую QtCreator для рисования формочек, для этого он хорош. Эклипсу не хватает только создания болванок переопределяемых виртуальных функций из родительского класса, ну и по возможности рефакторинга поумнее, как для джавы (переименование есть, но и только). В CDT 9.3 много старых досадных багов поправили, кстати.

От этого комментария я прозрел. Раньше и правда казалось, будто США у всех назанимали и сидят в долгах по уши (что выглядело странно с учётом их высокого уровня жизни), а теперь это выглядит, скорее, как поток инвестиций со всего мира. Технически, и то, и это является долгом, но причины совершенно разные.

А там то же самое:


"62-63=1; Changing only one element (either digit or operand), make this statement true." — Software Development Test Engineer candidate

Но ведь операнд — это то, с чем работает оператор, разве нет? И в данном контексте получается «либо цифру, либо число (целиком)».

«62 — 63 = 1; Измените только один элемент (цифру или операнда), чтобы утверждение стало правильным»

Я так понимаю, не операнда, а оператор. В вашем решении меняется два знака, равно и минус. Но можно поменять цифру, так что должно быть 64 — 63 = 1. Не понял подвоха, если честно.

Лучше сразу удваивать. Бросаем с 1, 2, 4, 8 и т.д., когда разбилось — берём второе яйцо и начинаем бросать с предыдущего этажа (т.е. с номером в два раза меньшим, чем у того, на котором разбилось) с шагом в 1 этаж.

Про make install я всё же поспорю. Безусловно, если собирается какая-то программа, которой нет в репозитории, её стоит паковать checkinstall'ом (при отсутствии поддержки правильной сборки в формат дистрибутива). Но нередка ситуация, когда нужно пересобрать уже имеющуюся в системе библиотеку с другими флагами или вообще нужна более новая версия. Я для себя выбрал два подхода:
1) конфигурим с префиксом /opt/build/%%softwarename%% (например, /opt/build/ffmpeg), на весь /opt ставим владельцем основного юзера, тем более, этот каталог принадлежит корневой системе, которая на SSD. Ставим через make install, без sudo. Далее по необходимости можно использовать при сборке PKG_CONFIG_PATH, чтобы найти именно эту библиотеку, либо специфичные настройки для модулей CMake (типа OPENSSL_ROOT_DIR). Из плюсов — удаление сводится к удалению каталога, т.к. мы ставили из-под юзера, в какие-либо системные файлы собранное прописаться чисто физически не могло, из минусов — каждую такую библиотеку надо указывать отдельно;
2) мне часто нужно собирать как можно более статичный бинарник, чтобы его можно было закинуть на целевой сервер или ПК коллеги, и он бы там просто работал без доустановок кучи библиотек, а размер бинаря значения обычно не имеет. Для этого конфигурим с префиксом /opt/build/static и точно так же make install'им из-под юзера. Получается такой второй рут со сборной солянкой из библиотек и софта, плюсы и минусы, соответственно, обратны первому варианту.


Вообще, проблема сборки статических бинарников освещена довольно слабо, а хитростей там много — например, слишком старая версия libstdc++ (на Ubuntu 14.04), ненайденные приложенные библиотеки, которые не получается слинковать статически, из-за отсутствующего RPATH (это вообще странная тема для CMake, ставится абсолютно неинтуитивно), ненайденные символы из libdl и libpthread, последний вообще может быть слинкован и статически, и динамически одновременно, что и приводит к таким ошибкам и т.д. Конкретно CMake не очень любит библиотеки .a и предпочитает им .so, если есть оба варианта. В целом, форсировать .a можно, но не кроссплатформенно, т.к. расширение различное на WIn и Mac, а какой-то единой рукоятки «линкуй всё статически» почему-то или не завезли, или я её не нашёл, или она работает по принципу «всё или ничего», а это не всегда возможно, например, PulseAudio уж точно статически линковать не стоит, равно как и библиотеки из Xorg. Пока оптимальный вариант — задавать этот /opt/build/static/lib через link_directories, и если там не хватает нужной .a библиотеки, можно просто скопировать или слинковать её из основной системы.


Ещё бы хотелось почитать про управление зависимостями уровня Maven, но я ничего живого кроме conan.io не нашёл, да и тот что-то не сильно упрощает сборку, если не наоборот. Сам CMake, вроде бы, позволяет подключать git-репозитории как зависимости, но я в эту тему не углублялся. Вообще, похоже, для C/C++ проектов у CMake сейчас альтернатив не видно, хотя до уже упомянутого Maven ещё идти и идти, к сожалению.

Разработчики NXT очень скоро запускают в полноценную эксплуатацию сеть Ardor, где будут полноценные сайдчейны, которые может создавать кто угодно, и зачистка транзакций. Интересное решение, в итоге, вместо блокчейна будет хэшчейн+снапшоты всех балансов. Для биткоина не подойдёт, т.к. в нём на каждую транзакцию практически создаётся новый адрес, тогда как у NXT они довольно постоянны (есть перемешивание для анонимизации). Прошу прощения за то, что написал сумбурно, подробности сам ещё не всё знаю, а так на отдельную статью тянет. Testnet уже запущен, можно экспериментировать.

проекты из разных несвязных категорий

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

Не-не, это понятно, я имел в виду «покоится относительно наблюдателя», конечно же. Просто крайне редко упоминается, что тела движутся вдоль оси времени со световой скоростью, для меня лично такая формулировка «щёлкает» в голове, складывая все известные факты воедино.

А, точно. Это я читал уже позже, и такое объяснение пространства-времени несколько удивило своей простотой и очевидностью: всё в мире движется со скоростью света, только в разных направлениях. Если тело покоится, оно движется со скоростью света вдоль оси времени, а увеличение пространственной скорости приводит к уменьшению скорости по времени, но суммарный вектор не меняется. Это как первый закон Ньютона, только с дополнительной компонентой времени, так что пространственно-временная скорость не меняется вообще. Вроде, ничего не напутал. Отсюда, кстати, следует, что для того, чтобы попасть в прошлое (двигаться по времени со скоростью меньшей нуля), нужно иметь пространственную скорость выше скорости света, чтобы в сумме снова вышло "c", но ТО это запрещает. Почему-то в школе в таком ключе не объясняют, а ведь так все непонятные моменты хорошо укладываются в голове.

Всегда не нравилась эта аналогия с продавливанием ткани шарами. Другие предметы начинают скатываться к центру продавливания под действием силы тяжести Земли, но ведь мы и объясняем эту силу тяжести. Получается, гравитацию объясняют аналогией с самой собой. Я некоторое время из интереса искал, почему искривление пространства вызывает ускорение других тел, но как-то внятного ничего не обнаружил. Было бы интересно почитать про фундаментальное объяснение гравитации в популярном стиле.

На данный момент, скорее всего, да, но в целом можно привязать распознавание изображения сразу к выдаче реакции, т.е. на входе текущее изображение с камеры + датчиков, на выходе угол поворота руля, степень нажатия «педали» газа и т.д. Такой подход более универсален, но объяснять его действительно будет сложно.

Это очень похоже на хэш-функции. Алгоритм той же SHA256 открыт, он намного проще нейросети в вычислительном плане, но никто не может предугадать результат хэширования данных без прохода по алгоритму, грубо говоря, за O(1) или хотя бы за O(n') < O(n), где O(n) — оригинальная сложность алгоритма, а O(n') — упрощённая/ускоренная. Иначе можно было бы себе намайнить все биткоины мира и взломать все сертификаты всех сайтов. И никто не может сказать, почему этот бит принял такое значение. Но причина, в общем-то, и не важна, просто по этому алгоритму так получается, а так можно аналогично по шагам пройти все стадии, только смысла в этом столь же мало. Разница лишь в том, что хэш должен быть максимально случайным, а нейросеть — максимально близка к желаемому результату. Но принцип действия похож: берём кучу данных (в случае RNN — произвольной длины, как и у хэшей), перемешиваем по алгоритму, получаем результат фиксированной длины.

Лямбды теперь тоже добавляют веселья. У меня вот на днях было: цикл по коллекции, в нём значения из коллекции передаются в лямбду, захват по ссылке, но работает криво — или выдаёт неверные значения, или падает. Потом оказалось, что лямбда выполняется вообще в другое время, а то и в другом потоке, когда переменная цикла уже давно уничтожена. А по виду функции, которая принимает лямбду, не всегда можно сказать, синхронное там выполнение или нет, надо ли учитывать время жизни передаваемых объектов или лучше просто копировать их.

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


Странно, что среди разработчиков есть такие самоуверенные люди, которые думают, что пишут идеальный код. Они вообще ни одной популярной большой программой не пользовались, что ли? Везде полно багов и дыр, и в ОС, и в браузерах, и в прочем прикладном софте. Считать себя на голову круче всех тех, кто пишет операционки и браузеры, могут разве что совсем неопытные программисты. Ну и эффект Даннинга-Крюгера забывать не стоит. Я вот свой уровень оценил бы как средний или ниже среднего, и чем больше узнаю, тем ниже этот уровень оцениваю.

В современных играх термин «хитбокс» вообще несколько неверно использовать, вроде, в Doom 3 впервые заменили именно бокс на что-то более сложное, помню, возможность пустить ракету между ног большого монстра и не задеть его подавалась как технологический прорыв, и так оно и было. Например, в Quake 3 использовались AABB (Axis-Aligned Bounding Boxes), грани которых параллельны глобальным осям. Хотя при этом можно было попасть в «пустоту» около персонажа или между его ног и тем не менее нанести ему повреждения, точность попадания не зависела от выбранной модельки (поэтому часто модель противника принудительно заменяли на крупного и заметного Tank'а, покрашенного в кислотные тона).


Сейчас модель коллизии является низкополигональным аналогом видимой модели, это компромисс между скоростью обсчёта и точностью попаданий. Дополнительно могут применять бокс или «капсулу» для быстрой проверки столкновений со статичной картой. Тем не менее, и с ними бывают сложные баги.

С мобильным интернетом бояться как раз нечего — там обычно NAT, а то и двойной бывает, т.к. абонентов очень много, а адресов очень мало. Злоумышленник максимум сможет узнать вашего оператора и/или с некоторой вероятностью город, но часто шлюз оператора с WAN IP находится в центре региона. Скажем, у меня определяется город Санкт-Петербург, хотя до него больше тысячи километров.

В неазслуженно регулярно забываемом Eclipse тоже есть. Меня однажды спасло, когда сделал git reset --hard не в том каталоге.

Фаерволл отключают на компьютере, при чём тут роутер? Для IPv6 действительно блокируется входящий трафик, ну и NAT никогда нельзя считать аналогом защиты, про это писалось многократно. Недоступность извне — это лишь небольшой побочный и не слишком надёжный эффект.

И VSync тоже отключится? Я немного не в курсе, но вроде бы есть какое-то различие между фулскрином и borderless windowed. В Windows слышал жалобы, мол, хотим borderless, чтобы Alt+Tab был то ли быстрее, то ли безболезненнее, не помню, а на Linux для меня «настоящий» фулскрин характеризовался захватом ввода, т.е. Alt+Tab или аналог из оконного менеджера не работал. Но скорее всего, там такое же окно размером с текущее разрешение экрана, а граббинг — просто побочный эффект организации ввода в конкретной игре.


Я почему спрашиваю — сам пользуюсь Compton именно для форсирования VSync, и хотя там есть опция unredirect fullscreen windows, это не влияет на VSync, он остаётся включен. Хоткеем можно включать/выключать Compton, когда нужно отсутствие тиринга или напротив, отсутствие input lag, так что тут не проблема. Но на Wayland просто так выключить его уже не получится.

Information

Rating
Does not participate
Registered
Activity