Музыку из первой группы любят «сложные» люди, которые склонны к рефлексии.
Вторую группу предпочитают «напористые и бунтующие» натуры[...] они более спортивны и не любят казаться умнее всех.
В третьей группе — оптимисты и экстраверты, более добросовестные и склонные соглашаться с другими
Музыку из четвертой группы предпочитают энергичные и ритмичные люди [...] отличаются отсутствием консерватизма, более высоким уровнем дохода и IQ.
1. А реально ли нужно запретить проезд? Может его разрешить и не заморачиваться?
2. Или может запретить въезд вообще всем? Тогда хорошо подойдёт стена.
3. Перевести все автомобили на автопилот с картой и условиями въезда.
4. Поставить знак-экран (условный кирпич) и камеру, нарушителей автоматически штрафовать по номеру.
5. Металлические шипы.
6. Ров с водой и крокодилами и автоматический опускающийся мост на цепях.
7. Хорошая парковка вне огороженной территории.
8. Просто знак запрета проезда, но если человек, которому показали этот знак, не едет, разворачивается и уезжает, то на выезде ему в автомате рядом выдаётся бесплатная газировка (попытка перевести с кнута на пряник).
9. Знак запрета проезда, муляж автоматического огнемёта и два поджаренных корпуса авто рядом.
Я всё-таки достиг результата, поэтому могу смело изменить название этой презентации с «Как я сбивал назойливый дрон соседского ребёнка» на «Как я сбил назойливый дрон соседского ребёнка».
Печаль. Всю статью ждал подробное описания того, как автор будет сбивать непосредственно дрон ребёнка.
И тут обнаруживается кое-что интересное. «Идентично» — то есть, тождественно, взаимозаменяемо при любых обстоятельствах. И даже при UB?
Неопределённое поведение — оно не определено. Значит и идентичность этого поведения какому-то другому поведению при нём тоже не определена.
Это как сравнивать два поля одного nullable типа (в БД для конкретики аналогии): если они определены, то их можно сравнить (проверить на равенство). Но если хотя бы одно из них null, то это значит, что мы вообще не можем их сравнивать, результат их сравнения тоже не определён. А само null — это не состояние данных, а неопределённость этого состояния. И думать о нём нужно именно на этом абстрактном уровне. Но программисту (говорю, основываясь на личных ощущениях) очень хочется воспринимать null как очередное состояние, потому что на уровне реализации это и есть состояние, а программист чаще мыслит реализацией.
Меня такой код восхищает, потому что он наверняка супер оптимален и с первого взгляда совершенно непонятно, как работает. От подобных алгоритмов я получаю особое удовольствие.
А я ровно наоборот. Не скажу, что в данном случае это плохо, всё-таки, как я понял, библиотечная реализация, которая, вообще говоря, критична к производительности. Но хотелось бы комментарий «как» и «почему так», хотя бы название алгоритма/приёма, если это какая-то классика. Вот опечатается коллега на один символ в реализации, а мне придёт бага — и как мне понять, есть ли здесь ошибка, где конкретно и как проявляется?
А что если функций не 4? Может, есть пятое слагаемое, навскидку, любовь созерцать воду. И через эту водосозерцательную функцию мы будем говорить о том, нравятся нам или не нравятся люди (которые на большую часть состоят из воды), какие занятия нам нравятся (близостью с водой либо похожестью на поведение воды) и т.д.?
Или что если ум и душа это одно и то же? Или что если никакой логики не существует в принципе? Что если есть люди, у которых нет каких-то из перечисленных четырёх функций? Что если у человека все четыре функции вторые или четвёртые? Что если «пробивной инструмент» человека в обычной жизни логика, а при опасности физика? Что если психотип приобретённый, а не врождённый? Что если он не постоянный, а меняется в течение жизни или даже по десять раз в течение дня? Что если не психотип определяет поведение человека, а сформировавшийся человек определяет свой психотип?
А ещё очень «здорово», что этой теорией можно объяснить что угодно. Есть, например, спортсмен. Он хорош, потому что его пробивной инструмент — физика. Ну или он хорош, потому что его тонкий инструмент — физика. Ну или физика его третья функция, поэтому он комплексует и вкачивает её на максимум. А есть человек, у которого со спортом плохо. Почему? Потому что его физика — первая функция, он плох в ней, но не осознаёт, поэтому ничего не делает для её улучшения. Или третья, поэтому он стесняется своего тела и не ходит в зал. Или четвёртая — и ему пофиг на спорт.
Проблема поставлена хорошо, да и решение предложено неплохое. Но ИМХО использование перечислений — шаг вперёд, а завязка их на булевы значения (и тем более каст к ним) — шаг назад. При определении перечислений нужно забыть, что переменные, из-за которых они возникают, были из множества {false, true}. Т.е. вместо
enum class WithValidation : bool { False, True };
enum class WithNewEngine : bool { False, True };
я бы написал как-то так:
enum class ValidationMode : bool { NoValidation, Validation };
enum class EngineVersion : bool { Old, New };
Тогда и мыслей о касте к булеву значению не возникает: мы будем проверять строгое соответствие переменной одному из её возможных значений.
Кстати, по опыту, часто функции (bool,…, bool) не обрабатывают весь спектр 2 в степени n индивидуально, она просто болеет «добавлением ещё флажка». Т.е., например, если у нас есть функция
То при первом аргументе false второй вообще не важен: какая разница, доступный контрол или нет, если мы его даже не будем отрисовывать по факту. Из-за этого напрашивается сделать что-то такое:
О том же подумал, когда статью читал. Всё надо либо проверять, либо заранее «договариваться» о том, чего быть «не должно», потому что это уже было обязательно проверено выше.
Но ведь одна из идей этой книги Нассима Талеба как раз в обратном: даже если теория правильно работает на предсказании в прошлом, то это не значит, что она будет работать в будущем.
Мне, навскидку, кажется, что для оценки и сравнения сложности лучше рассматривать количество рёбер взаимосвязи между модулями (и число самих модулей, но в меньшей степени), а не хроматическое число. При этом оценка
1. Будет работать для любого графа, а не только планарного.
2. Не будет ограничена (значением 4), как и сложность.
ИМХО советовать начинающему программировать читать Кнута — это всё равно, что советовать начинающему программировать на C++ читать Страуструпа. Книги-то обе отличные, вот только новичок с них как начнёт, так и закончит. Потому что, во-первых, нужен бекграунд, которого нет, во-вторых, понимание отсутствия этого бекграунда сразу начинает давить и демотивировать.
Звучит как гороскоп.
2. Или может запретить въезд вообще всем? Тогда хорошо подойдёт стена.
3. Перевести все автомобили на автопилот с картой и условиями въезда.
4. Поставить знак-экран (условный кирпич) и камеру, нарушителей автоматически штрафовать по номеру.
5. Металлические шипы.
6. Ров с водой и крокодилами и автоматический опускающийся мост на цепях.
7. Хорошая парковка вне огороженной территории.
8. Просто знак запрета проезда, но если человек, которому показали этот знак, не едет, разворачивается и уезжает, то на выезде ему в автомате рядом выдаётся бесплатная газировка (попытка перевести с кнута на пряник).
9. Знак запрета проезда, муляж автоматического огнемёта и два поджаренных корпуса авто рядом.
Ну или он просто высказал своё субъективное мнение, которое подхватили, потому что он
Печаль. Всю статью ждал подробное описания того, как автор будет сбивать непосредственно дрон ребёнка.
Неопределённое поведение — оно не определено. Значит и идентичность этого поведения какому-то другому поведению при нём тоже не определена.
Это как сравнивать два поля одного nullable типа (в БД для конкретики аналогии): если они определены, то их можно сравнить (проверить на равенство). Но если хотя бы одно из них null, то это значит, что мы вообще не можем их сравнивать, результат их сравнения тоже не определён. А само null — это не состояние данных, а неопределённость этого состояния. И думать о нём нужно именно на этом абстрактном уровне. Но программисту (говорю, основываясь на личных ощущениях) очень хочется воспринимать null как очередное состояние, потому что на уровне реализации это и есть состояние, а программист чаще мыслит реализацией.
А я ровно наоборот. Не скажу, что в данном случае это плохо, всё-таки, как я понял, библиотечная реализация, которая, вообще говоря, критична к производительности. Но хотелось бы комментарий «как» и «почему так», хотя бы название алгоритма/приёма, если это какая-то классика. Вот опечатается коллега на один символ в реализации, а мне придёт бага — и как мне понять, есть ли здесь ошибка, где конкретно и как проявляется?
А что если функций не 4? Может, есть пятое слагаемое, навскидку, любовь созерцать воду. И через эту водосозерцательную функцию мы будем говорить о том, нравятся нам или не нравятся люди (которые на большую часть состоят из воды), какие занятия нам нравятся (близостью с водой либо похожестью на поведение воды) и т.д.?
Или что если ум и душа это одно и то же? Или что если никакой логики не существует в принципе? Что если есть люди, у которых нет каких-то из перечисленных четырёх функций? Что если у человека все четыре функции вторые или четвёртые? Что если «пробивной инструмент» человека в обычной жизни логика, а при опасности физика? Что если психотип приобретённый, а не врождённый? Что если он не постоянный, а меняется в течение жизни или даже по десять раз в течение дня? Что если не психотип определяет поведение человека, а сформировавшийся человек определяет свой психотип?
А ещё очень «здорово», что этой теорией можно объяснить что угодно. Есть, например, спортсмен. Он хорош, потому что его пробивной инструмент — физика. Ну или он хорош, потому что его тонкий инструмент — физика. Ну или физика его третья функция, поэтому он комплексует и вкачивает её на максимум. А есть человек, у которого со спортом плохо. Почему? Потому что его физика — первая функция, он плох в ней, но не осознаёт, поэтому ничего не делает для её улучшения. Или третья, поэтому он стесняется своего тела и не ходит в зал. Или четвёртая — и ему пофиг на спорт.
я бы написал как-то так:
Тогда и мыслей о касте к булеву значению не возникает: мы будем проверять строгое соответствие переменной одному из её возможных значений.
Кстати, по опыту, часто функции (bool,…, bool) не обрабатывают весь спектр 2 в степени n индивидуально, она просто болеет «добавлением ещё флажка». Т.е., например, если у нас есть функция
То при первом аргументе false второй вообще не важен: какая разница, доступный контрол или нет, если мы его даже не будем отрисовывать по факту. Из-за этого напрашивается сделать что-то такое:
Это почти ложь.
1. Будет работать для любого графа, а не только планарного.
2. Не будет ограничена (значением 4), как и сложность.