[00:41:20] <valexey_> "Если вы не понимаете указатели, то остаётся очень небольшой круг типов программ, которые вы можете написать, поскольку это понимание позволяет создавать сложные структуры данных и целесообразные API. "
[00:41:23] <valexey_> http://habrahabr.ru/blogs/programming/130850/
[12:04:30] <valexey> http://habrahabr.ru/blogs/programming/130914/ ФОРТРАН!
[13:21:24] <valexey_> vlad2: а не знаешь, как из щелла stdin и stdout одной программы замкнуть на stdout и stdin другой?
[13:36:32] <valexey_> только пайпы руками создавать?
[16:33:56] <vlad3> Из шелла - на знаю.
[16:34:32] <valexey_> походу только руками через рукотворный пайп. то есть через mkfifo
[16:34:56] <valexey_> mkfifo /tmp/fifo; foo < /tmp/fifo | bar > /tmp/fifo
[16:42:18] <kemiisto> srand(time(0));
[16:42:23] <kemiisto> сделал
[16:42:39] <kemiisto> а всё равно одно и тоже число при каждом вызове rand()
[16:42:44] <kemiisto> O_O
[16:42:57] <kemiisto> valexey_: ПАЧИМУ ТАК?
[16:43:02] <valexey_> а с фига ли у тебя будет разное?
[16:43:08] <valexey_> ты же сид один и тот же вбиваешь вроде. не?
[16:43:57] <kemiisto> srand(time(0));
for(i = 0; r <= 10; i++) { выводим rand()}
[16:44:07] <kemiisto> внутри main всё работает
[16:44:15] <kemiisto> выводи десять разных чисел
[16:44:21] <valexey_> time(0) - это что такое?
[16:44:33] <kemiisto> время текущее же
[16:45:00] <kemiisto> http://www.cplusplus.com/reference/clibrary/cstdlib/rand/
[16:45:52] <valexey_> у тебя при каждом запуске программы одно и то же?
[16:45:58] <kemiisto> нет же
[16:46:00] <kemiisto> говорю
[16:46:04] <kemiisto> один запуск
[16:46:09] <kemiisto> десять одинаковых чисел
[16:46:22] <kemiisto> точнее 9
[16:46:22] <valexey_> o_O
[16:46:25] <valexey_> ща посмотрю
[16:46:28] <kemiisto> первое отличается
[16:46:30] <kemiisto> 31448
27434
27434
27434
27434
27434
27434
27434
27434
27434
[16:46:40] <kemiisto> а если в main тоже самое написать
[16:46:45] <kemiisto> то всё работае
[16:46:46] <kemiisto> т
[16:47:08] <valexey_> стоп. а где не работает?
[16:47:19] <kemiisto> внутри функи одной
[16:47:28] <kemiisto> это гуёвое приложение
[16:48:19] <valexey_> поток то же что и main?
[16:48:32] <kemiisto> я уже это проверял
[16:48:35] <valexey_> вообще, воспроизведи ка на hello world'e ошибку
[16:48:53] <kemiisto> здесь в Qt есть потокобезопасные qsrand и qrand
[16:48:58] <kemiisto> результат - тот же
[16:49:16] <valexey_> алсо убери нахрен srand
[16:49:19] <valexey_> и попробуй
[16:49:29] <kemiisto> valexey_: я охуею воспроизводить ;)
[16:49:42] <valexey_> независимо от srand'a результат последовательных rand'ов должен быть разным
[16:49:57] <kemiisto> да это уж я так
[16:50:04] <kemiisto> на всякий :)
[16:51:00] <valexey_> ибо у меня подозрение, что ты где-то постоянно вызываешь srand с одним и тем же аргументом (ты же в него секущие секунды даешь, а между вызовами может пройти меньше секунды, следовательно ты радостно делаешь генератору ресет в одно и то же начальное состояние)
[16:51:19] <kemiisto> не
[16:51:21] <kemiisto> убрал
[16:51:23] <kemiisto> тоже самое
[16:51:31] <kemiisto> в конструкторе класса работает
[16:51:35] <valexey_> а у тебя точно нигде в проге больше srand на зовется?
[16:51:39] <kemiisto> в методе - уже нет :D
[16:51:49] <valexey_> чо-то мистика какая-то. короче, давай весь код :-)
[16:52:20] <kemiisto> valexey_: там Qt + Qt/3D
[16:52:26] <kemiisto> надо собирать из сорцов
[16:52:34] <kemiisto> так что от кода толку мало будет
[16:53:02] <valexey_> та хз. может там что-то очевидное, а ты не видишь?
[16:53:02] <kemiisto> хотя погоди
[16:53:22] <kemiisto> ща выложу
[16:54:11] <kemiisto> http://pastebin.com/0cqsNeaG
[16:54:16] <kemiisto> это main()
[16:55:03] <kemiisto> http://pastebin.com/WqUZ3PmP
[16:55:27] <kemiisto> http://pastebin.com/327SF56Q
[16:55:32] <kemiisto> MainWindow
[16:56:01] <kemiisto> http://pastebin.com/nvePhnKL
[16:56:28] <kemiisto> http://pastebin.com/rfdFjupc
[16:56:40] <kemiisto> вот в последнем сорсе и проблема
[16:58:03] <valexey_> а если random использовать?
[16:58:27] <kemiisto> valexey_: чё за random?
[16:58:59] <valexey_> NAME
      random, srandom, initstate, setstate - random number generator

SYNOPSIS
      #include <stdlib.h>

      long int random(void);

      void srandom(unsigned int seed);

      char *initstate(unsigned int seed, char *state, size_t n);
      char *setstate(char *state);

  Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

[16:59:14] <valexey_> http://www.manpagez.com/man/3/random/
[17:00:16] <kemiisto> нету такой
[17:00:22] <kemiisto> это что-то не стандартное
[17:00:28] <kemiisto> у меня MSVC
[17:03:25] <valexey_> это то как раз стандартное
[17:03:49] <valexey_> это у тебя система не стандартная :-D
[17:05:07] <kemiisto> ну говно ващи плюсы
[17:05:10] <kemiisto> в общем
[17:05:23] <kemiisto> вот так вот и вылезают все ваши "преимущества"
[17:05:35] <kemiisto> кровавое месиво сплошное
[17:05:41] <valexey_> в данном случае не плюсов проблема :-)
[17:05:51] <kemiisto> ну конечно
[17:05:53] <kemiisto> да
[17:06:09] <kemiisto> ещё как плюсов
[17:06:33] <valexey_> а где тут плюсы вообще?
[17:06:40] <valexey_> rand - чисто сишная функция
[17:07:01] <kemiisto> ну так не работает то она в плюсовом коде :)
[17:07:18] <kemiisto> какой-то умник значит где-то что-то запилил
[17:07:24] <kemiisto> что не даёт ей работать
[17:08:06] <valexey_> скорее всего этот умник ты :-) только ты это еще не понял
[17:08:07] <valexey_> так
[17:08:31] <valexey_> попробуй //    qDebug() << rand();
заменить на srand(i); qDebug() << rand();
[17:09:01] <kemiisto> valexey_: внутри цикла srand()?
[17:09:07] <valexey_> ДА
[17:09:37] <kemiisto> 38
41
45
48
51
54
58
61
64
68
[17:10:28] <valexey_> так.
[17:10:50] <valexey_> а теперь убей там srand, а также закомментируй нахрен следующее:
[17:10:52] <valexey_> QGLBuilder builder;
   builder << QGLSphere();
   QGLSceneNode* node = builder.finalizedSceneNode();
   node->setPosition(QVector3D(i, 0.0, rand()%100));
   root_->addNode(node);
[17:11:49] <kemiisto> Работает! Говорю же - блядские ПЛЮСЫ виноваты!
[17:11:59] <valexey_> нет, не плюсы
[17:12:08] <valexey_> а твой возлюбленный Qt
[17:12:18] <valexey_> который где-то в потрохах, сцуко, использует тоже случайные числа
[17:12:21] <valexey_> и вызывает srand
[17:12:24] <kemiisto> а Qt на руби что-ли написан?
[17:12:26] <kemiisto> :)
[17:12:58] <valexey_> я хз на чем написан Qt, но явно не на плюсах
[17:13:06] <valexey_> у меня лично подозрение на вот эту строчку:
[17:13:08] <valexey_> QGLSceneNode* node = builder.finalizedSceneNode();
[17:13:33] <kemiisto> valexey_: очень толсто про не на ++
[17:13:46] <valexey_> я потому Qt и не пользуюсь, что там не плюсы.
[17:15:22] <kemiisto> valexey_: да есть тут в одном месте qsrand(31415);
[17:15:29] <kemiisto> но это НЕ Qt!
[17:15:41] <kemiisto> это доп. приблуда
[17:15:49] <valexey_> угу.
[17:15:52] <valexey_> void mapVertex(const QVector3D &v, int ix)
   {
       Q_UNUSED(ix);
       Q_UNUSED(v);
       static bool seeded = false;
       if (!seeded)
           qsrand(31415);
[17:15:55] <kemiisto> Qt/3D зовётся
[17:15:57] <valexey_> Qt3D
[17:15:58] <kemiisto> да
[17:16:16] <kemiisto> индокод какой-то аццкий
[17:16:18] <kemiisto> :D
[17:16:19] <valexey_> за такое надо яйса тупой пилой отпиливать.
[17:16:33] <kemiisto> и магичсекие числа тебе тут 31415
[17:16:35] <kemiisto> ;)
[17:17:12] <valexey_> ога.
[17:17:20] <valexey_> явно какой-то оберонщик писал
[17:18:01] <valexey_> kemiisto: это ж Pi!
[17:18:07] <valexey_> 3.1415
[17:18:20] <kemiisto> :facepalm
[17:22:31] <valexey_> блин
[17:22:33] <valexey_> говнокодеры!
[17:22:36] <valexey_> if (!seeded)
           qsrand(31415);
[17:22:46] <valexey_> а кто после этого будет seeded=true писать?!
[17:22:58] <valexey_> оно ж ВСЕГДА false там будет
[17:23:28] <valexey_> вот оно при каждом вызове и генерит тебе одни и те же числа
[17:23:34] <kemiisto> :-)
[17:23:41] <valexey_> более того, оно в этой же функции ВСЕГДА ГАРАНТИРОВАННО одни и те же числа выдает
[17:23:43] <kemiisto> я уже прочухал :)
[17:24:09] <valexey_> то есть никакого рандома там не будет. нафига тогда rand использовать? вбили бы уже просто 1,2,3 в качестве "случайных" чисел
[17:24:41] <valexey_> оно работало бы хотя бы быстрее, и побочных эффектов не имело бы :-)
[17:25:38] <kemiisto> говно, короче, этот Qt/3D
[17:25:50] <kemiisto> ещё и тормозной ;)
[17:26:07] <valexey_> да, пара массовых расстрелов команде разработчиков не помешали бы.
[17:26:58] <valexey_> /me пойдет, прогуляется.
[20:34:40] <kemiisto> valexey_: есть какой-то универсальный (а может даже стандартный) дефайе или что-то, позволяющий узнать, что это debug, а не release-сборка?
[20:35:54] <valexey_> есть
[20:36:43] <kemiisto> лаконично :D
[20:36:52] <kemiisto> ifdef DEBUG ?
[20:37:04] <valexey_> NDEBUG
[20:37:55] <valexey_> If the macro NDEBUG was defined at the moment <assert.h> was last included, the macro assert() generates no code
[20:39:00] <valexey_> http://www.velocityreviews.com/forums/t281934-difference-between-debug-and-ndebug.html
[20:39:30] <kemiisto> это не то
[20:39:38] <kemiisto> но я уже нашёл то
[20:39:40] <kemiisto> :)
[20:40:04] <valexey_> почему не то?
[20:40:33] <kemiisto> потому что я нихера не понял что это
[20:40:35] <kemiisto> :D
[20:41:06] <valexey_> обычный симвод
[20:41:10] <valexey_> *символ
[20:41:12] <valexey_> а что нашел то?
[20:41:50] <kemiisto> qmake defines a QT_NO_DEBUG macro when you make a release build
[20:43:08] <valexey_> NDEBUG как раз стандартный
[20:43:22] <valexey_> а вот QT_NO_DEBUG - какая-то левая хрень :-)
[20:43:54] <kemiisto> зато я всё сразу понял в одной строчке
[20:44:03] <kemiisto> а ты дал какую левую ссылку
[20:44:17] <kemiisto> вот любите вы, программисты, всё усложнять! :)
[20:44:25] <kemiisto> ничего! ничего!
[20:44:37] <kemiisto> Машины отомстят программистам за людей!
[20:44:38] <kemiisto> :D
[20:44:56] <kemiisto> или людям за программистов
[20:44:57] <kemiisto> :D
[20:45:24] <kemiisto> /me считает, что человечество должно срочно избавиться от программистов!
[20:45:30] <kemiisto> угроза же!
[20:45:47] <valexey_> я показал пример использования символа NDEBUG
[20:46:14] <kemiisto> может
[20:46:22] <kemiisto> я и не смотрел, как оказалось :D :D :D
[20:46:34] <kemiisto> я тут сам что-то нагуглил http://stackoverflow.com/questions/2290509/debug-vs-ndebug
[20:48:25] <valexey_> дык
[20:49:09] <kemiisto> дык не поняль я там никуя :)
[20:49:26] <kemiisto>  QString title = QCoreApplication::applicationName();
 title += " ";
 title += QCoreApplication::applicationVersion();
 title += " ";
#ifdef NDEBUG
 title += "RELEASE";
#else
 title += "DEBUG";
#endif
 mainWindow.setWindowTitle(title);
[20:49:36] <kemiisto> вот, наговнокодил :)
[20:49:43] <kemiisto> робит, вроде
[20:49:58] <kemiisto> чтоб глаза мозолило
[20:50:20] <kemiisto> а то я иногда "приятно" удивляюсь производительностью дебуг-версии
[20:50:22] <kemiisto> :D
[20:51:52] <valexey_> :-D
[20:52:09] <valexey_> это ты еще дебаг-версии эйфелевских прог не видел :-D
[20:53:00] <kemiisto> valexey_: не
[20:53:13] <kemiisto> тут в OpenGL понапихано всяких проверок
[20:53:20] <kemiisto> что он тупит
[20:53:33] <kemiisto> а в релизе прям реактивненько так робит :)
[20:53:43] <kemiisto> Qt/3D пока неюзабелен
[20:53:54] <kemiisto> собственно, когда включат
[20:53:58] <kemiisto> тогда и посмотрим
[20:54:35] <valexey_> дык и в эйфеле тоже :-) там СТОЛЬКО проверок, и вообще, не релиз там это ваще байткот.
[20:54:37] <valexey_> считай.
[20:55:32] <kemiisto> ну эйфелю то можно, бо он не нужен
[20:55:34] <kemiisto> :)
[20:56:24] <valexey_> злой ты...
[20:57:27] <kemiisto> valexey_: у меня rand() целые сутки не работал! Будешь тут добрым! :D
[20:58:29] <valexey_> Ж-)
[21:00:22] <valexey_> да проблема то выеденого гроша не стоила :-)
[21:00:30] <valexey_> равно как и яйца ломанного