Pull to refresh
292
0.5
Дмитрий Кашицын @Halt

Программист, линуксоид, паяльник-железячник

Send message

Причем исправляется это одним байтом (на ходу если делать).

https://bugs.launchpad.net/ubuntu/+source/nvidia-prime/+bug/1765363

пост #42

Но как я решил проблему, описано в посте#66

А по сути Nvidia в скриптах включения-выключения карты, которые вызываются из nvidia-settings, забыла перекладывать всего один файл.

Примерно этот - /lib/udev/rules.d/50-pm-nvidia.rules, или похожий, там же, рядом. Я уже не уверен, какой.

При переключении на интел он удаляется, а при переключении на nvidia - не восстанавливается.

Я таким образом один ноут по гарантии поменял :) Потому что при единожды выключенной Nvidia, потом больше никогда не работает HDMI выход.

После установки драйверов всё работает (два монитора), а после переключения N->I->N - нет.

Переустановишь линукс - работает :-/

24% я вам привел как примерный аккумулированный процент от части зп по 18% и 32%.

Нет такого понятия как «аккумулированный процент» в налоговых законодательствах. Есть такое понятие, как эффективная процентная ставка.

Например, возьмем юного погроммиста Васю из Алабамы, который только-только устроился говнокодить за 36 тыщ долларов год в США — эта зарплата захватывает сразу 2 первых tax rate (10% и 15% + FICA) и с ней необходимо будет выплатить 5,443.50 долларов ВСЕХ (Federal Tax, Social Security, Medicare) федеральных налогов — эффективная ставка составит 15.12% Ну а чистый годовой доход составит 30,566.50 долларов.

Допустим зарплату повысили и она теперь составляет уже 40 тыщ. долларов и теперь захватывается следующий (3-й, т.е. 25%) tax rate — выплатить придется 6,229.50 долларов, а доход чистыми составит 33,770.50 долларов. Эффективная ставка составляет 15.57% Зарплату повысили на 4000 долларов год (11%), доход вырос на 3200 долларов в год (8.8%), эффективная налоговая ставка поднялась всего, аш блин на целых
0.45%
!!! Офигеть как много…

Но это совсем нижний уровень зарплат в США. Поэтому повысим доходы Васи до нижне-средне-говнокодерских в США — 90 тыщ. долларов в год. С этой суммы ему придется выплатить 19,984.50 долларов налога, на руках у него останется 70,015.50 долларов, а эффективная ставка составит 22.20% Зарплата от стартовой выросла в 2.5 раза, доход вырос в 2.3 раза, эффективная ставка поднялась на 7% (с ~15% до 22%). Замечу что это зарплата уже выше среднеамериканской и облагается она уже соответсвующе.

Поэтому предположим, что чувак переехал в Сан-Хосе и стал получать по 200 тыщ долларов в год, захватывая тем самым 5 из 7 возможных Tax rate. Его отчисления в виде налогов (напоминаю, что я учитываю все возможные федеральные налоги) составит $52,710.30, а на руках у него останутся — 147,289.70 долларов. Эффективная ставка составит 26.36%

Допустим, что этот юный программист вообще оказался супер-исключительным-гением, превратился в маленького топ-менеджера гугла и теперь получает по 500к долларов в год и таким образом покрыл свои доходом всю налоговую шкалу: налоговые отчисления составят 164,400.30 долларов, а на руки он получит — 335,599.70. Эффективная налоговая ставка составит 32.88%

А теперь сухая выкладка:
36 тыщ ~30 тыщ 15.12%
40 тыщ ~33 тыщ 15.57%
90 тыщ ~70 тыщ 22.20%
200 тыщ ~147 тыщ 26.36%
500 тыщ ~336 тыщ 32.88%

В общем что бы Васи хоть как-то приблизиться к прошлогоднему налоговому пределу в 39.6% ему надо стать наемным работником — долларовым миллиардером (39.35% составит налог при его доходах в 1 млрд. долларов в год).
При этом на протяжении всей своей жизни Вася оставался мизантропом, женоненавистником, чайлдфри, так не обзавелся семьей и не перешел на обложение налогом домоводства, да и вообще не пользовался никакими налоговыми льготами. Замечу что среднемериканский доход составляет порядка 55к баксов в год

Везде, где я знаю, системы разные, даже в пределах EU. Пример — Польша и Германия.

Везде прогрессивные системы одинаковые — доход делится на несколько частей и каждая часть облагается по своей ставке — первая заработанная часть денег по-меньше, последующие части побольше. Просто в Польше будут бить на 2 части — первые 20 тыщ златых будут облагаться 18%, а все остальные доходы полученные сверх этих 20 тыщ златых — 32%, кстати там есть еще и 0% ставка, но это раньше так было, как сейчас не знаю. Ну а в Германии, будут бить на 5 частей, облагаемых под 0%, 14%, 24%, 42% и 45% + всякие дополнительные выплаты: для доходов выше средненемецких, например, в 50 килоевро придется отвалить 38% всех налогов и отчислений (я сюда все включил и пенсию и социальное страхование за которые там грех не заплатить, те же больничные оплачиваются в размере 100% и могут платиться до 3-х лет, например и из квартиры на улицу тебя никто не выгонят в случае форм-мажора какого-нибудь), а на руках останется порядка 31 тыщ евро, а при доходе в 100к евро в год (т.е. за доход сравнимый со стоимостью квартиры) — 44%, на руках останется 56 килоевро — снова доход выше, но это все без учета налоговых классов, которых там аш 6 штук. Я хз, много это или мало, но на 800 евро в месяц там вполне можно прожить, ну а скромная хатка в Берлине обойдется 100-200 килоевро. Ну а в США бьют доходы на 7 частей и 4 налоговых класса.
А еще можно не устанавливать zram, а включить уже имеющийся в ядре zswap — в некоторых ситуациях работает намного быстрее!
www.hippolab.ru/linux-zswap-dayte-mashine-shans
В языках программирования с поддержкой зависимых типов очень просто решается проблема останова.

Мы просто разрешаем существовать только гарантированно выполнимым функциям. Проворачивается это каким-нибудь таким способом:

recursive :
  A → B:(A → U) → C →
  order:TotallyOrdered C →
  HasLowerBound C order →
  IsDiscrete C order →
  extract:(A → C) →
  
  (a:A →
   (x:A → Lesser order (extract x) (extract a) → B x)
   → B a)
   
  → a:A → B a


Мы хотим получить функцию A → B (принимающую значение типа A, возвращающее значение типа B), в которой хотим использовать рекурсию.

Для этого мы просим наличие типа C, элементы которого линейно упорядочены, имеющий нижнюю границу (меньше которой элементов не существует) и для которого выполняется дискретность (есть гарантии того, что между двумя любыми элементами конечное количество элементов, т.е. например, это целые числа, а не рациональные).

И ещё просим функцию A → C, которая «оценит вес текущего значения A».

Затем принимаем функцию, которая принимает значение типа A и функцию, которая делает рекурсивный вызов, но которая принимает не только значение типа A, но и доказательство того, что у переданного значения вес меньше, чем у предыдущего. Тогда, очевидно, рекурсия не сможет продолжаться бесконечно, т.к. когда-нибудь она упрётся в нижнюю границу.

И все наши программы будут завершаться когда-нибудь (если никто не будет вычислять что-нибудь невероятно долгое, вроде функций Аккермана — ограничивать по времени выполнения куда сложнее, придётся описывать виртуальную машину и ограничивать количество выполняемых инструкций).
Рано или поздно перед любым челом встаёт вопрос: а существует ли Дед Мороз? И обычно уверенность в его существовании сменяется уверенностью в его отсутствии, к тому же возникает чувство досады, что тебя родители обманывали, говорили, что есть, а на самом деле… А что на самом деле? Когда меня сын перед Новым Годом спросил: пап, а Дед Мороз есть? Я сказал, конечно, но имеется одно но… Ты наверное замечал, что летом Деда Мороза не увидать, а зимой ты можешь идти по улице и встретить несколько Дедов Морозов. Дело в том, что Дед Мороз появляется не просто так. Он ведь волшебный персонаж, а значит в определённое время в него кто-то превращается. Это его самый главный секрет. На самом деле в Деда Мороза может превратится кто угодно, а потом превратится обратно (у мелкого округлились глаза: даже я !?). Да, и ты и я и, возможно, мама. Только как превратится в Деда мороза я тебе не скажу т.к. до догадаться до того как превратится в него, должен каждый сам, или волшебство не сработает…

Мой сын не совсем понял меня тогда. Но через год я обнаружил под Ёлкой некий хендмейд с корявенькой надписью: «папе от деда Деда Мороза». В тот же день, вечером, мелкий подошел ко мне и прошептал на ухо с довольным видом: пап, я понял как надо превращаться в Деда Мороза.

Вывод: те кто думает, что Деда Мороза не существует — ошибаются. Они просто не знают его главный секрет.

http://pikabu.ru/story/sushchestvuet_li_ded_moroz_4635948
Расскажу немного о своем опыте сдачи экзаменов и работы в Crossover.
Этап 1:
До этого я работал архитектором, но срочно понадобилось работать удаленно без обязательств(отправился путешествовать) и год назад я сдал тесты на обычного девелопера за $15 в час. Как пишет кроссовер: «тест это миниверсия того, с чем придется работать в будущем». Тест был ASP.NET. В реале никакого веба в двух проектах, где я работал, не было. На втором пришлось даже программировать на Дельфи.
Прошло время и удаленная работа стала для меня не так важна как раньше. Решил проапгрейдиться. Говорю:
Я: — Ребята, вы же видите, что я отличный девелопер, давайте я стану архитектором. Я был когда-то хорошим и уважаемым архитектором.
Crossover: — ОК. Для этого надо сдать тесты на архитектора.
Я: — Я сдавал тесты на ASP.NET девелопера, но никакого ASP.NET в моей работе и в помине не было. Зачем я буду сдавать тесты на то, что не буду использовать. Вы же можете посмотреть на то как работал и сделать выводы.
Crossover: — Нет, мы так не можем.

Этап 2:
ОК. Сдаю экзамены на .NET Chief Architect. Это было несколько месяцев назад.
Первый тест был на 2 дня, второй на 3 дня. Может я слишком ответственно подхожу к этому, но в сумме я потратил около 80 часов на оба теста(а это две недели рабочего времени!). Прошел последний этап — собеседование. После собеседования получаю письмо примерно следующего содержания: «Спасибо за ваш интерес. Но мы не сможем с вами продолжать работать. В конце письма Вы найдете фидбэк». А теперь внимание! То, что они постоянно рекламируют как «наша команда даст вам детальный фидбэк» и что было в конце письма(примерно):
Good: application layering, unit test coverage, all functional implemented
Poor: no Linux, no clouding experience, no SPA used
Б...!!! За 80 часов работы получить две строчки фидбэка и отказ!!!
ОК, я что-то сделал неправильно. Но черт побери!!! Напишите мне об этом. В какую мне сторону работать?! Куда себя улучшать!?
В общем, понадобилось поговорить по скайпу с представителем Кроссовера, попереписываться с саппортом (т.е. потратить еще кучу времени), чтобы восстановить картину, что мне не хватает для этой вакансии.

Этап 3.
Сдаю еще раз экзамен две недели назад (проапгрейдив свои скиллы за эти месяцы).
3.1 Первый тест на час в режиме: Вопрос — выбор варианта ответа. Где-то на 22-м из 30 вопросов их опросник выдает страницу с билибирдой без возможности перейти к следующему или предыдущему вопросу. Тыкаюсь туда, сюда, трачу драгоценное время. Минут через 5-7, как-то через url удалось продраться к следующему вопросу, который тоже оказался битым. Перешел на следующий вопрос. Что успел, доотвечал. Оказалось, даже с учетом двух битых и пары не отвеченных вопросов, набрал нужное количество баллов. Написал им в саппорт — ребята у вас вот такой косяк. Через пару дней пришел ответ — не парься все хорошо, тест ты прошел (это я и так знал).
3.2 Второй тест. Видимо гневные отзывы: «Вы охренели по 5 дней тестировать» достигли их ушей и то, что было раньше в тестах на два и три дня они объединили в один тест на 3 дня. ОК. Пишу этот тест также по глупости ответственно, то есть трачу 3 дня по 16+ часов = 50 часов. В ночи, за 4 часа до окончания срока захожу на страницу дабы зааплоадить результат работы и демо-видео. Вижу картину: Ваше время истекло… Пишу в саппорт. Отправляю результат(демо-видео не могу приаттачить). Получаю ответ: «Мы happy сообщить, что ваш результат принят к рассмотрению». Еще через день получаю знакомую стандартную отписку: «Спасибо за ваш интерес. Но мы не сможем с вами продолжать работать. В конце письма Вы найдете фидбэк». И никакого фидбэка!!! Вообще!!! За 50 часов работы. В этот раз я уверен, что написал все по пунктам задания.

В итоге, создается впечатление, что у них не хватает ресурсов на обработку результатов и проще написать отказ, чем тратить время на разбирательство: «Почему результат пришел не стандартным путем, а через саппорт?» «Почему не было приложено демо-видео?» и т.п. Еще и фидбэк писать надо…

Постарался написать коммент максимально корректно, хотя всего раздувает от злобы. Жду, что мне ответят на этот раз.
«Непривычный» Китай — это Audio-gd! Все сделано прекрасно, и без вопросов обслуживается производителем, который регулярно отвечает на емэйлы (в отличие от любого отделения крупной компании в Китае, например, Philips или Panasonic).
http://www.audio-gd.com/Products-EN.htm
По поводу статьи — есть мысль перевести вот это шикарное руководство по запуску такой системы:
http://vfio.blogspot.ru/2015/05/vfio-gpu-how-to-series-part-1-hardware.html
Чем оно мне понравилось — там не просто непонятный набор команд с комментарием "введите эти команды в консоли", а что команда значат и зачем нужны — х.з.
А подробный разбор, что и для чего делаем.
ОТдельная прелесть — большая часьт делается через GUI, а то что все таки пишется ручками — объясняется что и для чего.
Пока от перевода останавливает мысль, что не особо нужная статья для хабра-сообщества.
От себя могу посоветовать этот ресурс. Активно пользуюсь им при написании статей.

Сразу генерируется html-код для вставки в статью. Потом есть возможность отредактировать. Можно редактировать сам код, но в случае больших формул это затруднительно, и всё же довольно удобно
Есть сайт, который генерит картинки на лету из теха. Например, example.com/?x^2 — это картинка с формулой x^2, которую можно сразу же куда-нибудь вставить. Только я адрес не помню, поищите. :) Если найдёте, скажите мне. :) Ещё есть похожий сайт www.texpaste.com
Я вот например нашел вот что вот здесь
Основное в ней можно кратко изложить так:
Гражданин России может и должен быть зарегистрирован по месту жительства и(или) по месту пребывания, если он фактически живёт в жилом помещении, либо в учреждении/организации, которая предоставляет места для постоянного или временного проживания.
Жилое помещение может располагаться только в жилом доме.
Жилой дом может находиться как в населённом пункте, так и в другом месте, но он должен соответствовать жилищным нормам и быть пригодным для круглогодичного постоянного проживания людей.
Граждане, живущие не в жилищах и не в учреждениях, регистрироваться не могут и не должны (за немногими исключениями).
Пребывание в жилом помещении более 90 дней подряд без регистрации в нём (т.е. с регистрацией по другому адресу либо без регистрации вообще) – может быть административным правонарушением, причём как для такого жильца, так и для хозяина этого жилища.
Делать регистрацию по адресу жилого помещения, в котором не проживал и не собирался – уголовное преступление. Причём как для того, кто так регистрировался, так и для того, кто фиктивно регистрировал в своём жилом помещении.
Долгое отсутствие регистрации – само по себе нарушением закона не является.
Человек вправе, но не обязан приобретать жилое помещение (или право пользования им) и проживать там. Место жительство, как и место пребывания, может быть, а может и не быть у человека – это законно; ответственность за бродяжничество в России давно отменена.
Для регистрации по месту жительства или по месту пребывания достаточно любого законного права пользования помещением (собственности, найма, поднайма, соцнайма, безвозмездного пользования, прав временного жильца и др.) и фактического проживания там.
UFO landed and left these words here
Вас гугль забанил?
Идете en.wikipedia.org/wiki/Oz_(programming_language)
Затем mozart.github.io/
Затем github.com/mozart/mozart2#downloads

PS: Мне тоже было бы интересно прочесть статью по Oz от эксперта в теме.
Вот буквально пару дней назад как сдал экзамен по логическому программированию/программированию в ограничениях, в рамках которого мы изучали язык Oz. Пролог изучал годом раньше. Oz гораздо более интересный и продвинутый мультипарадигменный язык, в котором есть человеческие структуры данных, хорошо реализована функциональная парадигма, можно самому описать стратегию обхода графа, встроенный визуализатор графа решений и много других плюшек. Настоятельно рекомендую ознакомиться всем вдохновившимся прологом.
Это старое правило, на слух это различие уже почти везде «выпало», но у нас сильна письменная традиция, и она стабильна, как ни удивительно, ещё аж с 11 века. Тогда книги писались на церковнославянском (то есть южнославянском, заметно отличавшемся), а в миру общались на восточнославянском, и поэтому чтобы не «портить» письменный язык, правила соблюдали строго. Эта же привычка шла и дальше. Зализняк приводит пример, что причастия и деепричастия, которые встречаются в письменной речи, в устной практически отсутствуют, потому что они принесены именно из письменной речи. В сербском причастия и деепричастия встречаются часто и в устной речи, а в русском эта форма глагола реимпортирована через церковнославянский.

Могу ошибиться, но м.б. двойные «нн» раньше могли содержать между собой гласные. В берестяных грамотах эти гласные во многих сегодняшних «проблемных» местах ещё присутствовали. Например беглые гласные — это тоже результат выпадения этих гласных в некоторых позициях.

Ударение нелогично, потому что меняется система ударения, и две системы конфликтуют. Здесь подробно рассказывается об этом:
tvkultura.ru/video/show/brand_id/20898/episode_id/973669/video_id/983735/viewtype/picture
Эх, зря я доверился своему школьному образованию. Вот, только что нагуглил. Век живи, век учись.

P.S. Живой пример, что Интернет запрещать нельзя.
Я когда-то как раз практически по мотивам пропаганды Стёпы попробовал покоммитить в живой проект и делился во внутренних обсуждениях впечатлениями в жанре «поток сознания». Возможно, Вам будет интересно:
Неоднократно воспетые лайфтаймы и референсы. Это прикольно, но очень непривычно. Реально приходится что-то перестраивать в мозгах, чтобы нормально это воспринимать. Сначала кажется, что «ну, всё просто, есть owned pointer, есть мутабельная ссылка, есть иммутабельная, я про всё это читал, всё просто». Потом оказывается, что есть мутабельные строки вида String и иммутабельные вида &str, которые суть всем знакомый StringView. Потом ты начинаешь их складывать в массив и понимаешь, что массивов бывает тоже два вида — мутабельный вектор Vec и лёгкий слайс вида &[T]. При этом, решив в какой-то момент использовать где-то для простоты слайс, выясняешь, что пустых слайсов не бывает. Может, я их так и не нашёл, не знаю. Но нельзя просто так взять и написать возвращающую слайс функцию, если в какой-то из её веток ты хочешь вернуть пустой список.

С указателями всё тоже не так легко, как хотелось бы. В какой-то момент мне потребовалось оперировать не конкретными типами, а интерфейсами (trait в расте). Их совершенно закономерно нужно, как и в C++, хранить исключительно в виде указателей — Box, где Box — аналог std::unique_ptr. И вот в этом месте лично я проклял всё, потому что обнаружил синтаксис, весьма схожий со всякими const char const *, только более запутанный. Если вы хотите принимать в своей функции, скажем, Box (который, напоминаю, сам по себе умный указатель), вы можете написать:

fn fun(dgst: Box<Digest>) // immutable owned variable
fn fun(dgst: &Box<Digest>) // immutable reference to variable
fn fun(dgst: &mut Box<Digest>) // mutable reference to variable
fn fun(mut dgst: Box<Digest>) // mutable owned variable
fn fun(mut dgst: &Box<Digest>) // mutable variable with immutable reference
fn fun(mut dgst: &mut Box<Digest>) // mutable variable with mutable reference


Но это я сейчас такой умный, а поначалу я без всякой задней мысли заиспользовал первый вариант и, будучи уверенным, что я сделал move данных в свою функцию и могу дальше делать с ними всё, что душа пожелает, попытался передать mut-ссылку на этот указатель дальше. А оказалось, что хрен. Целый час убитого выходного открыл мне, что хоть я в этой функции и единоличный обладатель данных, это всё равно не значит, что они мутабельны — мутабельную ссылку на них взять нельзя. Я конечно сам виноват, но это очень большая разница с C++, где наоборот, надо специально говорить const для неизменяемости. Функциональным задротам будет проще, у них в языках обычно тоже всё иммутабельно по умолчанию, как в расте.

Зато сами trait'ы офигенны. Это вот очень круто, что можно придать любому типу желаемую функциональность, не редактируя сам тип. По большому счёту это работает, как всякие визиторы с перегрузками из C++, только намного читаемее и удобнее в написании и использовании. Ну и концепты, так и не попавшие в плюсовый стандарт, есть из коробки.

Есть всякая удобная информация, предоставляемая компилятором, которая удобнее и понятнее, чем традиционные ifdef'ы:

#[cfg(target_os = "linux")]
fn myfun() {
  ... 
}
#[cfg(target_os = "macos")]
fn myfun() {
  ...
}


С другой стороны что-то пока прямо просит его поюзать, но пока недоступно: заголовок, идентифицирующий при компиляции библиотеку и её версию, — #![crate_id = «chroot#1.0.0»] — достать из кода нельзя, информацию приходится дублировать.

Взаимодействие с сишными функциями не так удобно, как было обещано. Нет, FFI есть и с ним всё хорошо (а функции libc по умолчанию прокинуты в стандартную библиотеку в забавном виде: libc::funcs::posix88::unistd::execvp), но при этом строки в Rust хранятся без \0, что несколько огорчает libc. Несмотря на то, что метод преобразовании строки строки существует, это, во-первых, явно вызывает реаллокацию памяти, а во-вторых, чтобы передать строку из argv (который имеет тип Vec) в libc-функцию, надо написать вот так:

argv.get(1).as_slice().to_c_str().unwrap() // Vec<String> -> String -> &str -> CString -> *c_char
К сожалению — не всё так однозначно. Возможно мне стоит написать отдельный пост на тему конвейерного метода организации программирования. И назову её «Домик из говна. Правильный способ производства ПО в индийских условиях».

У меня был личный опыт участия в подобном, в бытность стажировки в Индии в 2005 году. Сейчас эта структура называется Aricent, тогда это был Flextronics Software Systems (CMMI-5).

Огромный проект для телекома, целевая платформа Solaris 8. Его делает большая толпа (>120 человек) малоквалифицированных исполнителей (что всем очень понравится — индусов) с тоненькой прослойкой тимлидов уровня нормальных программистов (тоже индусов) и индусский менеджмент. Плюс группка стажёров, заброшенных с Украины и Беларуси чтобы оторвать кусок проекта в ту сторону.

Был устроен фабричный конвейер в чистейшем незамутнённом виде:
— Перед включением в проект — ПТУ. «Дети, знакомьтесь — это проект, проект — это дети». Серия тренингов об архитектуре проекта и всему инструментарию сверху до низу (включая vim, version control ClearCase, разбиение на модули, как входить на девелоперский сервер и т.д.), плюс вводная как это должно реализовываться. Для самого конечного исполнителя с сонным выражением лица стоящего в строю.

— API и архитектура — прибиты гвоздями заранее.

— Система спроектирована таким образом, что всё сделано через FSM. Исполнители кодят функции переходов между состояниями И ВСЁ. В худшем случае производительность участника можно оценивать количеством написанных функций в день. Их сотни и они одинаковые. Индусы радостно копипейстят одно и тоже.
непридуманный диалог со standup daily meeting:
PM — Ритика, сколько функций ты вчера написала?
Ритика — 17
PM — Плохо! А ты Вишну?
Вишну — Я написал 36 функций!
PM — Молодец, Вишну! Всем тоже писать 36 функций в день!


— проект для рядового исполнителя разбит на стадии:
а. 2-3 месяца кодим, и только кодим. Вся команда кодит. 120 человек. Даже компиляция проверяется весьма эпизодически
б. 2 недели — юнит тесты. За программирование — бьют по рукам, только пишем тесты. Code coverage проверяется и прочие вещи.
в. 2 недели системная интеграция, заставляем модули работать вместе

В итоге через полгода работы (включая фазы подготовки людей, проектирования и непосредственно реализации) — имеем первую версию системы. За полгода 120 человек написали маштабируемую 3G VoIP телефонию (HA, расширяемость, все дела). На тестах первая итерация системы поддерживает только 2 (!) пользователей и всегда зависает на 35 звонке. Тимлиды возвращаются с показов заказчику седыми.

Но… Начинается следующая итерация «проектирование» ->«кодинг»->«юнит тестирование»->«системная интеграция». И я полностью уверен, что после 5 итерации система заработала в полном обьёме. Её тупо массой задавили и грамотным использованием неквалифицированных исполнителей в правильно выстроенным для них процессе.

Мои аплодисменты менеджменту и проектировщикам. Как выстроить людей, допускающих ДИЧАЙШИЕ косяки и особенно не умеющих программировать, в конвейер. И получить результат.
Рекомендую ознакомиться: http://polit.ru/article/2014/05/04/pigarev/ «Основной парадокс состояния сна и его экспериментальное разрешение»
Лично мне намного более коротким, понятным и по существу кажется ответ на stackoverflow на вопрос «What is move semantics?». За ним следует более подробный ответ от того же автора.

Information

Rating
1,619-th
Location
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Date of birth
Registered
Activity