Pull to refresh
56
0
Сергей Садовников @FlexFerrum

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

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

К сожалению, и этот совет тоже не универсален. Нередко можно найти совершенно противоположные точки зрения на один и тот же вопрос, высказываемые экспертами (без кавычек) в соответствующей области.
Так я вам скажу по секрету, от этого ничего не меняется.

В том то и дело, что меняется. Я более чем уверен, что люди, составляющие основную аудиторию канала «Культура» и люди, составляющие основную аудиторию канала «НТВ» живут на совершенно разных планетах. Я это к тому, что очень многое зависит от информационного фона, в который помещает себя человек. Массмедиа (а также ББС) — два основных способа формирования этого фона.
Продолжая тему. Наверное, уже для многих не является секретом, что ТВ-рейтинги формируются у нас по результатам «опроса» пары тысяч человек (если не меньше). Т. е. ровно столько, сколько согласились поставить себе домой соответствующий девайс (отсылающий «в обратку» информацию о том, что и когда смотрится человеком). При этом получившаяся схема обладает очень сильным (хоть и не явным) контуром положительной обратной связи в виде публикаций этих самых рейтингов. По этому говорить о том, что нам показывают (или рассказывают) то, что «большинство из нас хочет» — не совсем корректно. А потому политика телеканалов/изданий формируется их редакторами и хозяевами. Хотя, таки да. Имеется свобода выбора. Как минимум «смотреть/не смотреть» и (как максимум) — «что именно смотреть/читать».
Скажите как там с работой Qt Visual Studio Add-in или Qt Visual Studio Integration в VS2010?

Увы, никак. :( Видимо, этот аддин появится вместе с выходом 4.7 (я лишь предполагаю). По этому для комфортной работы привёл Магомета к горе. Т. е. прикрутил компиль от VS 2010 к VS 2008.

И остался ли баг на Windows 7 bugreports.qt.nokia.com/browse/QTBUG-11309 в скомпилированной Qt 4.6.3+VS2010?

Судя по исходному коду — должен был остаться. Но дело в том, что на моей семёрке этот баг просто не проявляется (к счастью).
Как будто-бы единственный пример подобных маркетинговых ходов, ориентированных на малограмотность аудитории. :) Первое, что приходит на память — линейки звуковых карт в стиле
SB-8bit, SB-16bit, SB-32, SB-64, где в последних двух случаях указывается совсем не битность АЦП/ЦАП.

Но, так да. Сети несуществующего поколения — это что-то из области фантастики. :)
Ничего хорошего в адрес «Билайн» говорить не собираюсь, но устное обещание девочки из коллцентра и пункты договора, закрепляющие за сторонами те или иные обязательства — вещи несколько разных порядков. Я к тому, что обещать — ещё не жениться. И в данном в данном случае компания оставила за собой право не выполнять то, что явным образом не прописано в договоре. Ну а то, что при этом получилось такое вот откровенное «динамо» — форменное свинство. С этим нельзя не согласиться.
А приехать на работу на пару часов позже (по договорённости с руководством) — не реально? Зачем же сразу отгул то брать?
К слову сказать, на C++ (который 0x) мемоизатор может выглядеть так:

template<typename R, typename ... Args>
std::function<R(Args ...)> memoize(R f(Args ...))
{
  auto l_f = [=](Args ... args) -> R
  {
    typedef std::tuple<Args ...> args_pack_t;
    typedef std::tuple<args_pack_t, R> memoize_val_t;
    
    static std::vector<memoize_val_t> values;
    
    args_pack_t args_pack(args ...);
    
    for (auto p = values.begin(); p != values.end(); ++ p)
    {
      if (std::get<0>(*p) == args_pack)
        return std::get<1>(*p);
    }
    
    R ret_val = f(args ...);
    values.push_back(memoize_val_t(args_pack, ret_val));
    return ret_val;
  };
  
  return l_f;
}


Использование предельно просто:
int f(int a, double b)
{
	return (a + 10) * b;
}

int main()
{
	auto f_ = memoize(f);
	
	std::cout << f_(10, 20) << std::endl;
	std::cout << f_(10, 20) << std::endl;
	std::cout << f_(10, 40) << std::endl;
	
	return 0;
}


Лукап, понятно, в данном варианте — не самый оптимальный, но (как и в случае с питоном) можно легко сделать варианты мемоизаторов, которые будут делать это настолько оптимально, насколько захочет пользователь такого класса.
Сарказм, увы, не распознал. :)
В плане MMORPG-движков (браузерных) — согласен. Был свидетелем, как один мой знакомый разрабатывал оный. Сначала пробовал на C++, потом (отчаявшись решить ряд вопросов в силу недостатка опыта в некоторых областях и очевидной сложности реализации некоторых аспектов именно на C++), переписал всё на java. Переписать получилось быстро и он остался доволен результатом (в целом), бо производительностью был не особо озабочен.

Про offline-игрушки — тоже согласен.
Так то оно так (ведь имеются в виду MMORPG-движки?)… Только вот какая картинка получится, если сравнить нагрузки, которые таки движки могут выдерживать?
Ну, общечеловеческая точка зрения — понятие весьма относительное. Глубокий смысл такого поведения раскрыть не смогу, поскольку мне он не известен, но рискну предположить (согласившись с вышеотписавшимися), что такое поведение — унаследовано от ранних реализаций C и оставлено из соображений backward compatibility. Плюс к этому добавляет определённую степень свободы (нет необходимости таскать прототипы функций), и, как следствие, определённое количество проблем.
Почему же не должно? Вполне соответствует стандарту:
«If the expression that denotes the called function has a type that does not include a
prototype, the integer promotions are performed on each argument, and arguments that
have type float are promoted to double.» Раздел 6.5.2.2, п. 6. В конце этого же пункта говориться об UB в случае несоответствия реальному прототипу функции, которая будет вызвана.
Ну а gcc по этому поводу ещё и предупреждение выдаёт.
12 ...
13

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity