Обновить
18

Пользователь

1
Подписчики
Отправить сообщение

Меня как сидящего все еще на bash интересует,
для начала две базовые вещи:


  1. как сделать "бесконечную" историю? На bash я использую такой код:
    export HISTCONTROL=ignoredups
    export HISTFILESIZE=-1
    export HISTSIZE=-1
  2. Как поставить такой же "prompt" как у bash?
    case ${TERM} in
        [aEkx]term*|rxvt*|gnome*|konsole*|interix)
                PS1='\[\033]0;\u@\h:\w\007\]'
                ;;
        screen*)
                PS1='\[\033k\u@\h:\w\033\\\]'
                ;;
        *)
                unset PS1
                ;;
    esac
Нет, ни с чем подобным я не встречался.

Странно, просто все библиотеки для других языков с которыми я работал это умеют "из коробки",
например quickcheck для Haskell, или его аналог для Rust, там эта фича называется "shrink".

А оставшаяся часть подобного тестирования, а именно — получив ошибку на каком-то случайном наборе данных, пытаемся упростить набор данных,
до тех пор пока ошибка воспроизводится, реализована в каком-нибудь
проекте для C++?

В теории — да. В данном конкретном случае винда лучше, ибо по ней больше вакансий.

Э..., вы читали статью? Админов так много, что директор ломиться к единственному
потенциальному админу утром в душ с тортиком. По-моему, отсюда следует что на вакансию админа отликнулись
0 человек. Не важно предлагали ли мало денег, или в том городе физически нет больше нужных специалистов, но в данном конкретном случае у нас есть ровно один специалист на рынке и этот специалист
знает/хочет/может Linux.


Плюс у винды дефолт работает достаточно качественно. А вот за дефолт Linux не возьмусь утверждать. И
опять же, в Windows меньше возможности выстрелить себе в ногу. Это надо задаться целью. А в пингвине
это гораздо легче

По-моему это "вкусовщина", человек имеющий большой опыт работы с Linux, но не имеющий опыт администрирования Windows, скорее всего выскажет строго противопложную точку зрения. Тоже самое будет и со специалистами по Solaris, AIX и так далее. Очевидно что в изученной и известной тебе системе меньше возможностей выстрелить себе в ногу, дефолт там работает более качественно (потому что опять же он известен и не приносит никаких неожиданностей и так далее).

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

Не согласен, человек тоже инструмент сам по себе. Если вам нужно решить задачу
за неделю
и цена эксплуатации будет одна и та же на платформе X и Y, но IT специалист
знает только X, и будет изучать Y месяц, и столько же вы будет искать специалиста для Y,
то по-моему решение очевидно.

Если я правильно понял условия то код нужен такой:

Да спасибо именно то, что я имел ввиду.


А ваши инструменты. типа ./qmlcore/build --boilerplate
проверяют валидность, что в данном контексте доступны данные свойства,
callbacks и подобные вещи?

Обычно для тестирования GUI framework я пытаюсь реализовать
следующую "простую" задачу:


в прямоугольник слева, вверху, шириной 1/5 от ширины окна приложения,
и высотой 1/5 от высоты окна приложения, вывести произвольное число от 0 до 999
шрифтом по умолчанию. Размер шрифта должен подбираться автоматически,
с помощью GUI framework, таким образом, чтобы максимально занять выбранный прямоугольник.


Насколько сложно это будет реализовать с помощью PureQML?

Единственным решением остается передавать слабую ссылку (или создавать внутри) в другой объект, который не подвержен жизненному циклу компонента (в нашем случае объект класса Api):

Да, другой класс должен быть не anonymous, но разве его нельзя сделать static inner?


А если использовать lambda из Java 8, последние версии android studio вроде имеют
неплохую поддержку java 8?

В llvm этот вопрос решён хоть как-то, но по уровню оптимизации сишка уступает тому же rust'у.

По приведенной ссылке:


Update Actually as dbaupp points out, this optimization example is not specific to Rust. In fact, LLVM is doing it via local > analysis (the sort I mentioned above), and clang++ produces the same results for the equivalent C++ code. In fact Rust > in general would need to preserve references because you can convert a reference to a raw pointer and compare them > for equality.

Про проблемы с выравниванием я знаю, и по крайней мере у gcc есть несколько ключей,
для генерации предупреждений по этому поводу, на x86 с этим тоже можно кстати столкнуться,
например если компилятору "сказать" что данные выравнены и заставить его сгенерировать код для работы скажем с AVX, а потом дать на вход невыровненные данные.


Меня интересовало как раз что за сегменты (на arm скажем никаких сегментов в терминах i386 нет) и что за дырки между ними, но судя по все это было просто недопонимание.

На ARM мы получим исключение если участок памяти находится между сегментами

А можете пояснить, что вы подразумеваете под понятием "сегментам" на ARM,
и ARM с MMU или с MPU имеется ввиду?

По заголовку решил, что это статья про game dev,
т.к. SDL довольно известная в узких кругах библиотека: http://www.libsdl.org/

В немного похожей ситуации — промышленный компьютер с linux внутри,
просто выключал и включал питание USB порта, для этого то ли нужно
было чуть-чуть поправить стандартный driver, то ли уже была готовая утилита
управляющая питанием с помощью sysfs, и нужно было ее только скомпилировать — давно было.

и нам пришлось переписать IPC на вызовы библиотеки gpgme, в результате повысилась надежность, демон прекрасно заработал с родными «C-шными» вызовами и стал корректно обрабатывать ошибки в нештатных ситуациях.

И ваш код автоматически перелецензировался под GPL-2, т.к. у gpgme насколько я помню
именно эта лицензия. Где можно скачать исходники вашей программы? :)

#define protected public
# include <external_header>
#undef protected
потому что компилятор может быть уверен, что input >случайно не поменяется (interior mutability — отдельная >история)

А почему можно так лихо убрать из рассуждений interior mutability, вполне может быть:


struct T {
    data: RefCell<u32>,
}

fn foo(input: &T) {
    let mut data = input.data.borrow_mut();
    *data += 1;
}

и компилятор должен либо уметь понимать все возможные unsafe блоки, чтобы определять анлоги RefCell написанные программистом, либо забыть про оптимизации связанные с неизменяемостью?

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

А в чем разница с C++ в этой плоскости?
В C++ тоже нельзя создать объект класса с чисто виртуальными функциями,
на стеке, а потом на его место записать объект наследника. Да и вообще
с созданием объекта "класса с чисто виртуальными функциями" возникнут
некоторые проблемы. Придется как в Rust где-то (например в куче) хранить "конкретные" объекты и передавать куда нужно указатели на абстрактный класс.


И ничего живут же как-то, в ООП играют уже много лет.

Основная проблема, которую преодолевают на пути к точности, физическая — нестабильность задержки электромагнитной волны в ионосфере

А уход опорного генератора тактовой частоты приемника? А тропосфера? Недостаточная точность эфемерид спутников?

у оракла есть многоблочное чтение (scattered read), когда по DMA одной SCSI командой достает 128 блоков напрямик в память.

А под какой ОС он это умеет? В linux например можно работать с блочными устройствами напрямую минуя кэши из user-space, но штатного интерфейса для работы с DMA из user-space не предусмотренно.

Ещё мы очень хотим нормальную работу с диском. В плане дискового I/O PostgreSQL сильно проигрывает Oracle.

А кто-нибудь может "развернуть" это предложение, что именно не так с I/O PostgreSQL?

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность