Архив июля 2017

Почитал на досуге Спортивный кодекс РАФ

Придумал новый формат любительского ралли (Р3К) – с нулевым стартовым взносом и выраженной исключительно в рублях пенализацией. Просчитываю экономическую эффективность проекта.

Wonderlic test

По на водке [info]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 – благо китайский модуль с распаянной на нем микросхемой и обвязкой стоит смешных денег. Но что самое важное – это габариты устройства. Я прикинул, что используя даже обычный китайский модуль, можно запихнуть его внутрь корпуса “проходного датчика скорости” от ВАЗ – который легко устанавливается на большинство отечественных янг- и олдтаймеров. Естественно, что здесь можно предусмотреть и всю необходимую обвязку – какой-нибудь преобразователь питания и датчик Холла. Если не заморачиваться с установкой датчика на трос спидометра, а, скажем, прицепить его в районе болтов кардана или на тормозной щит – то можно побаловаться и с другими вариантами корпуса.

В общем, в будущем сезоне можно будет поиграть в увлекательную игру “надури техинспекцию” :)

И вопрос по орфографии

Как правильно: спизженный или спижженный?

Выдал фразу

Иногда работает, а иногда лежит.

Угадайте, про что.

Передовое штурманское оборудование

sensors

Очередная партия серых коробочек протестирована и готова к передаче заказчикам.

Санпросвет

http://www.cbc.ca/news/health/gonorrhea-resistance-1.4193646

А сейчас для вас прозвучит песня группы “Абба” “Супертриппер”.

Про мобильники

В ожидании тачскрина взамен разбитого решил посмотреть Яндекс.Маркет на предмет современных мобильников. Естественно, начал с определения ТЗ. Хочется мне смартфон, с относительно свежим и не загаженным Android, двумя симками, камерой, WiFi, Bluetooth, GPS – в общем, пока все стандартно. Нестандартная часть начинается отсюда – и похоже, что на сегодняшний день это самое жесткое требование: размер “по вертикали” не должен превышать 125 мм.

mobiles

Как я его определил? Да очень просто – прикинул размеры всех своих мобильников и взял ближайшее “верхнее” значение из ряда Ra10 по ГОСТ 6636-69 :) А если серьезно – мне кажется, что таскать в кармане что-то больше моего нынешнего мобильника (123×64x10 мм) уже проблематично, более крупные аппараты все равно выглядят “лопатами”.

Но… Ассортимент смартфонов в Яндекс.Маркете, удовлетворяющих этим требованиям, оргазма не вызывает – это такой отстойный Китай, что хочется пройти мимо – за исключением, разве что, Samsung Galaxy J1 Mini, да и он от китайцев недалеко ушел. “Компактными смартфонами” в нынешних обзорах называют модели размером 130×65 (еще куда ни шло), 135×66 и даже 141×69 мм. Неужто надо смотреть в сторону iPhone SE (124×59 мм)?

Уточнять “андроидное” ТЗ такими опциями, как “приличный экран”, “нормальная камера” и так далее вообще бессмысленно – добавив хоть одно дополнительное требование, вместо десятка “китайцев” получим ноль без палочки. В общем, печально все это.

Вы делаете это неправильно

По-моему, почти в каждый курс программирования входит задачка вроде “напишите программу, решающую квадратные уравнения”. Обычно это второе или третье задание после “Hello, world!” – считается, что это хороший способ продемонстрировать нетривиальные инструкции ветвления. “Хорошее” решение сводится к вычислению дискриминанта и в случае, если он неотрицательный – вычислению корней квадратного трехчлена ax2+bx+c по формуле, известной из курса алгебры за седьмой, что ли, класс:

square1

Вот такой вариант решения обычно считается более-менее приемлемым (хотя его можно/нужно обвешать еще несколькими проверками – например, не равен ли коэффициент 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 – а так как они в этом случае очень близки, то возникающая при этом вычислительная ошибка оказывается слишком большой.

Метод, разумеется, можно улучшить. Для начала – можно вспомнить о существовании еще одной формулы для корней квадратного уравнения:

square2

Выводится она абсолютно аналогичным образом, от “классической” отличается тем, что “не работает” при c=0.

Если переписать программу, чтобы она использовала эту формулу – то меньший корень “нехорошего” уравнения будет вычисляться точно, а проблемы возникнут с большим корнем. Причина та же самая – вычитание двух близких по величине чисел. Но ведь если вычислять больший корень по первой формуле, а меньший – по второй, то эта проблема исчезнет! Поэтому более правильный метод решения квадратного уравнения должен выглядеть так:

- вычисляем дискриминант D=b2-4ac
- если дискриминант неотрицателен, то вычисляем

q

- корни уравнения равны q/a и c/q.

Как реализовать это в программе – довольно очевидно, это особо ее не усложнит.

Какая здесь мораль? Численные методы и программирование – это две совершенно разных области человеческого знания. Математические задачки – вроде решения квадратного уравнения – могут показаться интересными с точки зрения обучения программированию, но это “чужая территория”, и можно столкнуться с совершенно непредсказуемыми вещами. Признайтесь, многие ли слышали о сложностях, возникающих при решении на компьютере квадратных уравнений – хотя казалось бы, что может быть проще?

Продолжим про скульпторов

В википедической статье про Арно Брекера было написано примерно следующее:

Две скульптуры «Провозвестник» и «Призвание» из ателье в Йекельсбрухе были позже установлены в Эберсвальде на стадионе 20-й армии Группы советских войск в Германии. Вместе с двумя женскими статуями Фрица Климша, а также двумя скульптурами коней Йозефа Торака из сада рейхсканцелярии они стояли там до лета 1989 года.

Как-то недосказанно получилось – что за статуи, куда они делись летом 1989, ну и так далее. Начал разбираться – и на форуме “Назад в ГСВГ” нашел две фотографии из Эберсвальде:

eberswalde2

eberswalde1

По словам форумчан, когда ГДР “дышал на ладан”, бронзовые статуи (а это были не только статуи Брекера с этих фото, но и две женские фигуры работы Фрица Климша, и статуи коней Йозефа Торака) сдали в переплавку. С одной стороны – странно, мне так кажется, что их ценность все более-менее осознавали; с другой – а фиг поймешь этих немцев, когда дело касается “любимого скульптора Гитлера”.

Но у истории есть продолжение – оказывается, в 2015 году в Бад-Дюркхайме нашли статуи из Эберсвальде – тут пишут про коней Йозефа Торака, но я встречал и упоминания работ Брекера, например, по второй ссылке:

http://p.dw.com/p/1FTED
http://artguide.com/posts/1167#footnote-4

Особенно, конечно, порадовали статьи в немецкой прессе – например, эта:

http://www.sueddeutsche.de/kultur/kunstobjekte-aus-dem-dritten-reich-ausstellen-nicht-verstecken-1.2492736

Всерьез пишут, что показывать вот этих коней или мускулистых мужиков Брекера (не говоря уж об истинно арийских женщинах Климша) на выставке – это пропаганда нацизма. Скажите, а вам действительно первым делом хочется зигануть при взгляде на примерно такую скульптуру?

fritz-klimsch-olympia

Передовое штурманское оборудование

odometer-boards

Приехали платы для “серой коробочки” – и что интересно, почти все устройства уже “предзаказаны”.

И про искусство

Прочитал в ЖЖ [info]babs71 про мемуары Вернера Ланге “Художники во Франции во время оккупации”. Заинтересовался историей про Дину Верни, натурщицу Аристида Майоля, и загуглил, за что ее упекли в гестапо. Загуглил, узнал много нового и интересного – не только про французов, но и про Арно Брекера, например. Не откажите себе в удовольствии, походите хотя бы по ссылкам из педивикии.

Для состоятельных парней

Проперла монетизация в программке для учета личных финансов Coin Keeper:

coinkeeper

Добавить дополнительный источник дохода могут только состоятельные парни, отбашлявшие авторам программы :)

И еще одна задачка по ПДД

perekrestok

Кто первым проедет перекресток?

Пьяные командиры из теплых бункеров в глубоком тылу гнали бойцов в атаку!

http://inosmi.ru/social/20170626/239657112.html

Забыл добавить, что это про финнов.