Придумал новый формат любительского ралли (Р3К) — с нулевым стартовым взносом и выраженной исключительно в рублях пенализацией. Просчитываю экономическую эффективность проекта.
Месяц: Июль 2017
Wonderlic test
По на водке avva прошел этот тест на IQ:
http://wonderlictestsample.com/wonderlic-test-sample/50-question-wonderlic-test/
Получил 62%, или 31 правильно отвеченный вопрос. Если верить википедии, это больше, чем средний результат программиста или инженера, но меньше, чем таковой же для системного аналитика. Извиняет меня лишь одно — перед прохождением теста я выжрал литра три пива.
Интересно, а есть ли исследования по прохождению тестов на IQ ужратыми в разной степени респондентами?
PS А как вы готовитесь к финалу Чемпионата Московской области по ралли?
UPD Финал слит, чемпионат выигран, на трезвую голову я набираю 39 очков (78%).
Ретро-ралли и современная электроника
Заказал недавно с Aliexpress в очередной раз партию Bluetooth-модулей HC-05 (думаю, вы уже догадались, зачем). Приехали десять модулей — из них 8 те самые HC-05, а оставшиеся два — какие-то мне неизвестные, на TI CC2541.
Ну, с HC-05 все понятно — конфигурируем модуль десятком-другим AT-команд, прицепляем к нашему девайсу и пользуемся, как удлинителем UART. Все довольно просто и неприлично тупо. А вот модули на CC2541 — это что-то новое. Во-первых, у них другой набор команд — хотя кое-какая информация довольно быстро нагугливается. Самое неприятное — это то, что эти модули не поддерживают старый добрый Bluetooth 2.1, а, стало быть, для меня пока что совершенно бесполезны.
Но на кое-какие мысли меня эти модули натолкнули. На днях я почитал регламент ретро-ралли «ГУМ-авторалли Gorkyclassic 2017«, а точнее — пункт про использование «профессионального штурманского оборудования». Формулировка — совершенно замечательная:
Использование профессионального штурманского оборудования, приборов и устройств, установленных на автомобиле, запрещено. «…» Использование любых навигационных программ в мобильных устройствах (смартфонах, планшетах и т. п.) не запрещается.
Что такое «профессиональное штурманское оборудование» — вопрос, конечно, интересный. По услышанной мной недавно версии, к таковому относятся приборы вроде Терратрипа — мол, наличие такого серьезного и недешевого девайса отпугивает новичков (равно как и висящие на лобовом стекле пара навигаторов, антирадар и еще какая-нибудь фигня), поэтому всех надо заставить ехать по штатному одометру. GPS на московских ретро-ралли — не помощник, два круга по Кремлевской набережной, заезд в Лефортовский тоннель — и любой счетчик расстояния покажет чушь.
Относится ли к запрещенному «профессиональному штурманскому оборудованию» или же к разрешенным «навигационным программам в мобильных устройствах» древний «Чайный навигатор» — вопрос, конечно, дискуссионный, и было бы очень интересно услышать мнение официальных лиц на эту тему — но меня заинтересовал другой вопрос. Моя программа TSD Navigator — безусловно, «навигационная программа в мобильном устройстве». Но у нее есть важное отличие от банального «Навитела» — она умеет работать с беспроводным адаптером для датчика пробега, которому не страшны любые сбои в работе GPS.
Конечно, в нынешнем виде этот адаптер далеко не идеален — но по отзывам пользователей, со своими функциями справляется неплохо. Фактически, по точности измерения расстояний (а это основной показатель качества штурманского прибора в любительском ралли) TSD Navigator с адаптером не уступает тому же Терратрипу. Проблема одна — габариты. Пытливый техинспектор сможет обнаружить «серую коробочку» и потребовать, согласно регламента соревнования, обернуть ее непрозрачной тканью.
Несомненно, в следующем году в регламент добавят обертывание всяких подозрительных коробочек в фольгу — и я начал прикидывать варианты, как бы поглубже спрятать аналогичное по функциональности устройство. Для начала — хорошо бы отказаться от адаптеров типа HC-05. Если не писать к HC-05 свою прошивку — а это тот еще геморрой — то нужен как минимум еще один микроконтроллер, а это лишняя плата, кое-какая обвязка и вообще куча проблем. И вот тут мне на глаза попался этот китайский адаптер с CC2541.
Чем он отличается в лучшую сторону от HC-05? Чипы от Texas Instruments неплохо документированы, в отличие от микросхем Cambridge Silicon Radio в HC-05. Они поддерживается тем же IAR’ом, для них есть многочисленные примеры — так что, возможно, имеет смысл написать и собственную прошивку для CC2541 — благо китайский модуль с распаянной на нем микросхемой и обвязкой стоит смешных денег. Но что самое важное — это габариты устройства. Я прикинул, что используя даже обычный китайский модуль, можно запихнуть его внутрь корпуса «проходного датчика скорости» от ВАЗ — который легко устанавливается на большинство отечественных янг- и олдтаймеров. Естественно, что здесь можно предусмотреть и всю необходимую обвязку — какой-нибудь преобразователь питания и датчик Холла. Если не заморачиваться с установкой датчика на трос спидометра, а, скажем, прицепить его в районе болтов кардана или на тормозной щит — то можно побаловаться и с другими вариантами корпуса.
В общем, в будущем сезоне можно будет поиграть в увлекательную игру «надури техинспекцию» :)
И вопрос по орфографии
Как правильно: спизженный или спижженный?
Выдал фразу
Иногда работает, а иногда лежит.
Угадайте, про что.
Передовое штурманское оборудование
Санпросвет
http://www.cbc.ca/news/health/gonorrhea-resistance-1.4193646
А сейчас для вас прозвучит песня группы «Абба» «Супертриппер».
Про мобильники
В ожидании тачскрина взамен разбитого решил посмотреть Яндекс.Маркет на предмет современных мобильников. Естественно, начал с определения ТЗ. Хочется мне смартфон, с относительно свежим и не загаженным Android, двумя симками, камерой, WiFi, Bluetooth, GPS — в общем, пока все стандартно. Нестандартная часть начинается отсюда — и похоже, что на сегодняшний день это самое жесткое требование: размер «по вертикали» не должен превышать 125 мм.
Как я его определил? Да очень просто — прикинул размеры всех своих мобильников и взял ближайшее «верхнее» значение из ряда Ra10 по ГОСТ 6636-69 :) А если серьезно — мне кажется, что таскать в кармане что-то больше моего нынешнего мобильника (123x64x10 мм) уже проблематично, более крупные аппараты все равно выглядят «лопатами».
Но… Ассортимент смартфонов в Яндекс.Маркете, удовлетворяющих этим требованиям, оргазма не вызывает — это такой отстойный Китай, что хочется пройти мимо — за исключением, разве что, Samsung Galaxy J1 Mini, да и он от китайцев недалеко ушел. «Компактными смартфонами» в нынешних обзорах называют модели размером 130×65 (еще куда ни шло), 135×66 и даже 141×69 мм. Неужто надо смотреть в сторону iPhone SE (124×59 мм)?
Уточнять «андроидное» ТЗ такими опциями, как «приличный экран», «нормальная камера» и так далее вообще бессмысленно — добавив хоть одно дополнительное требование, вместо десятка «китайцев» получим ноль без палочки. В общем, печально все это.
Вы делаете это неправильно
По-моему, почти в каждый курс программирования входит задачка вроде «напишите программу, решающую квадратные уравнения». Обычно это второе или третье задание после «Hello, world!» — считается, что это хороший способ продемонстрировать нетривиальные инструкции ветвления. «Хорошее» решение сводится к вычислению дискриминанта и в случае, если он неотрицательный — вычислению корней квадратного трехчлена ax2+bx+c по формуле, известной из курса алгебры за седьмой, что ли, класс:
Вот такой вариант решения обычно считается более-менее приемлемым (хотя его можно/нужно обвешать еще несколькими проверками — например, не равен ли коэффициент a нулю?):
int solve(double a, double b, double c, double *x1, double *x2){ double d = b*b - 4.*a*c; if( d >= 0 ){ d = sqrt(d); *x1 = (-b + d)/(2.*a); *x2 = (-b - d)/(2.*a); return 0; } return -1; }
В чем проблема? На первый взгляд все более-менее хорошо, но… Давайте для тестирования будем подсовывать уравнения с известными корнями — используя для этого теорему Виета. А именно, зафиксируем коэффициент a=1, тогда уравнение с корнями x1 и x2 будет иметь коээффициенты b=-(x1+x2) и c=x1x2. Сравнивая корни, полученные при решении уравнения, с известными нам, оценим «качество» решения.
Если корни «нормальные» — те, с которыми справится шестиклассник — то все хорошо. Но что будет, если взять два «нехороших» корня — к примеру, x1=1, x2=10-14 (это для double; если вы пользуетесь float — то возьмите второй корень, равный 10-5)? Проверьте — не забыв включить вывод максимально возможного количества значащих цифр (в printf лучше всего использовать форматный спецификатор %g, при использовании вывода в стиле C++, через iostream, такой вывод включен по умолчанию). Ошибка при вычислении второго корня возникнет уже в четвертой значащей цифре, это, на самом деле, уже довольно неприлично.
В чем дело? Если обратить внимание на «обычную» формулу для вычисления корней квадратного уравнения, то мы увидим, что при вычислении меньшего корня корень из дискриминанта вычитается из b — а так как они в этом случае очень близки, то возникающая при этом вычислительная ошибка оказывается слишком большой.
Метод, разумеется, можно улучшить. Для начала — можно вспомнить о существовании еще одной формулы для корней квадратного уравнения:
Выводится она абсолютно аналогичным образом, от «классической» отличается тем, что «не работает» при c=0.
Если переписать программу, чтобы она использовала эту формулу — то меньший корень «нехорошего» уравнения будет вычисляться точно, а проблемы возникнут с большим корнем. Причина та же самая — вычитание двух близких по величине чисел. Но ведь если вычислять больший корень по первой формуле, а меньший — по второй, то эта проблема исчезнет! Поэтому более правильный метод решения квадратного уравнения должен выглядеть так:
— вычисляем дискриминант D=b2-4ac
— если дискриминант неотрицателен, то вычисляем
— корни уравнения равны q/a и c/q.
Как реализовать это в программе — довольно очевидно, это особо ее не усложнит.
Какая здесь мораль? Численные методы и программирование — это две совершенно разных области человеческого знания. Математические задачки — вроде решения квадратного уравнения — могут показаться интересными с точки зрения обучения программированию, но это «чужая территория», и можно столкнуться с совершенно непредсказуемыми вещами. Признайтесь, многие ли слышали о сложностях, возникающих при решении на компьютере квадратных уравнений — хотя казалось бы, что может быть проще?
Продолжим про скульпторов
В википедической статье про Арно Брекера было написано примерно следующее:
Две скульптуры «Провозвестник» и «Призвание» из ателье в Йекельсбрухе были позже установлены в Эберсвальде на стадионе 20-й армии Группы советских войск в Германии. Вместе с двумя женскими статуями Фрица Климша, а также двумя скульптурами коней Йозефа Торака из сада рейхсканцелярии они стояли там до лета 1989 года.
Как-то недосказанно получилось — что за статуи, куда они делись летом 1989, ну и так далее. Начал разбираться — и на форуме «Назад в ГСВГ» нашел две фотографии из Эберсвальде:
По словам форумчан, когда ГДР «дышал на ладан», бронзовые статуи (а это были не только статуи Брекера с этих фото, но и две женские фигуры работы Фрица Климша, и статуи коней Йозефа Торака) сдали в переплавку. С одной стороны — странно, мне так кажется, что их ценность все более-менее осознавали; с другой — а фиг поймешь этих немцев, когда дело касается «любимого скульптора Гитлера».
Но у истории есть продолжение — оказывается, в 2015 году в Бад-Дюркхайме нашли статуи из Эберсвальде — тут пишут про коней Йозефа Торака, но я встречал и упоминания работ Брекера, например, по второй ссылке:
http://p.dw.com/p/1FTED
http://artguide.com/posts/1167#footnote-4
Особенно, конечно, порадовали статьи в немецкой прессе — например, эта:
Всерьез пишут, что показывать вот этих коней или мускулистых мужиков Брекера (не говоря уж об истинно арийских женщинах Климша) на выставке — это пропаганда нацизма. Скажите, а вам действительно первым делом хочется зигануть при взгляде на примерно такую скульптуру?
Передовое штурманское оборудование
Приехали платы для «серой коробочки» — и что интересно, почти все устройства уже «предзаказаны».
И про искусство
Прочитал в ЖЖ babs71 про мемуары Вернера Ланге «Художники во Франции во время оккупации». Заинтересовался историей про Дину Верни, натурщицу Аристида Майоля, и загуглил, за что ее упекли в гестапо. Загуглил, узнал много нового и интересного — не только про французов, но и про Арно Брекера, например. Не откажите себе в удовольствии, походите хотя бы по ссылкам из педивикии.
Для состоятельных парней
И еще одна задачка по ПДД
Пьяные командиры из теплых бункеров в глубоком тылу гнали бойцов в атаку!
http://inosmi.ru/social/20170626/239657112.html
Забыл добавить, что это про финнов.