Pull to refresh
65
0
Дмитрий Майоров @dimview

Неправильные, но полезные модели

Send message
О, «переписать с нуля». Things You Should Never Do, Part 1.
Передатчики LORAN-C к тому же уже несколько лет как выключены. Приёмники на судах остались, но не используются.
Спутниковая система позиционирования LORAN-C?
Однобоко получилось. Борьба с дублированием кода приводит к увеличению количества зависимостей, что плохо. Эту сторону медали тоже надо освещать.
Приведённые цифры (более тысячи интервью и больше сотни классных программистов) ничего не говорят о пользе технического собеседования. Может, среди 900 отсеянных было 300 классных программистов. Я уж не говорю о том, что понятие «классный программист» — весьма расплывчивое.

Структуры данных и алгоритмы я бы не назвал узкоспециальными знаниями. Необязательно писать на доске имплементацию красно-черного дерева по памяти, но надо по крайней мере знать, что такое указатель, зачем нужен индекс и чем O(N) отличается от O(N^2).

Попытки давать кандидатам олимпиадные задачки совершенно не связаны с самоутверждением. Сильные программисты с высокой вероятностью уже знают решение, потому что простых но интересных задач, которые можно решить в рамках собеседования, не так много, и они передаются из уст в уста. А если они решение не знают, то видно разницу в отношении. Одни сразу начинают копать: «интересная задачка, я такую раньше не встречал, в лоб не решается, что если я попробую применить вот такой подход...» Другие теряются и тупо смотрят в пустой листок бумаги. Третьи начинают искать оправдания — «мне такого рода задачки не решать не приходилось, институт был давно, это не моя сильная сторона».

Есть задачки, специально подобранные для того, чтобы отсеивать нежелательных кандидатов. У них есть простое решение, которое сложно найти. Так вот сильные кандидаты зачастую могут решить даже их.
craft_brother, кстати, прав. Кустарное производство — это то, что у вас сейчас и для чего вы набираете сотрудников. Ничего ругательного в этом нет, просто особенность конкретного бизнеса. Для быстрого делания CRUD сайтов на PHP+JS+SQL такие люди нужны, а для какого-нибудь другого направления могут требоваться люди с совершенно другими навыками.

Вряд ли Шумахер хоть раз разбирал или собирал свой болид по винтику. Тем более вряд ли он знает режим термообработки пружин подвески или язык, на котором написана программа контроллера впрыска топлива.
Отдача у C96 как раз небольшая. Патрон как у ТТ, вес больше, следовательно отдача — меньше.
В авиации есть та же проблема при передаче управления между первым и вторым пилотом, и стандартный протокол — три сообщения.

Первый пилот: «You have control»
Второй пилот: «I have control»
Первый пилот: «You have control»

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

Разделение системы и данных может работать на серверах и то не всегда (не очень то они разделяются), а на машинах пользователей от него больше проблем, чем пользы. Единожды снятый образ стремительно отстаёт от жизни.
Упомянутые в статье фотографии детей не меняются, поэтому держать разные их версии за последний год не нужно. За версионность кода отвечает git.

При покупке нового компьютера покупаются два новых диска. Так решается проблема растущих объёмов данных, заодно получаем более старые резервные копии.

HDD лаптопа много места не занимает и мобильность не сильно ограничивает.

В процессе dd компьютер не должен ничего другого делать, именно поэтому копирование происходит ночью. Можно вообще это делать в однопользовательском режиме или загрузившиcь со специально сделанной для этого флешки. Но даже если делать hot backup, из которого восстановятся пользовательские файлы но операционная система перестанет работать, то даже это не так страшно — ОС можно восстановить, загрузившить с её диска.
jwz вроде давно уже установил стандарт резервного копирования безо всяких облаков и связанных с ними технических и юридических сложностей:

1. Одновременно с компьютером покупаем два жёстких диска, точно таких же, как в компьютере, и USB корпуса для них. Один из них храним дома подключённым к компьютеру, другой — на работе.
2. Каждую ночь автоматически запускается полное побитное копирование диска. Неважно, как именно — через dd или SuperDuper.
3. Раз в месяц диски меняем местами.
4. При отказе жёсткого диска компьютера его жёсткий диск заменяется на вчерашнюю резервную копию и покупается новый диск.
С территории Штатов тоже не работает, по крайней мере сейчас.
Дисперсия оценок возрастает, а среднее значение Y не меняется, поэтому знаки у выросших коэффициентов получаются противоположными.

Посмотреть на результаты несложно, экспериментальная статистика нам в помощь. Делаем таблицу из 4 колонок (Y, X1, X2, X3) на 1000 строк. Заполняем её случайными числами из стандартного нормального распределения. Строим регрессию. У меня получилось y = -0.014*x1+0.056*x2-0.01*x3.

Теперь делаем x1 = x2 + rand()*0.001, где rand() между 0 и 1. Подгоняем регрессию ещё раз. У меня получилось y = 149.75*x1-149.69*x2-0.01*x3.
  1. Из 100 переменных примерно 5 получат звёздочки. После чего обычно пишется статья, в которой показываются эти 5 переменных и их «статистически значимые» коэффициенты, без упоминания других 95. Количество наблюдений здесь, кстати, не при чём.
  2. Коэффициенты при этих иксах будут большими по модулю и противоположными по знаку. Качество модели упадёт. Ключевое слово — Variance Inflation Factor, VIF. На практике это встречается сплошь и рядом, назвается multicollinearity или просто collinearity.
  3. А надо бы, модели должны хорошо работать на похожих данных. Ключевые слова overfitting, cross-validation. В статье об оценке результатов регрессии нельзя этот аспект пропускать.
  4. Чтоб увидеть выброс невооружённым глазом, надо на данные невооружённым глазом посмотреть. Что делается не всегда, хотя и надо бы. Но более важный момент в том, что одно плохое наблюдение их миллиона может испортить регрессию совсем. Это недостаток МНК, отсюда проистекает важность борьбы с выбросами, а также польза от всяких robust методов.


Это я не придираюсь, просто идеи для следующей статьи подбрасываю.
Остались неосвещёнными каверзные вопросы:

  1. Если X1...XN совершенно случайны и никак не связаны c Y, сколько из них получат звёздочки и что эти звёздочки означают?
  2. Что если X1 и X2 окажутся сильно коррелированными?
  3. Что будет, если применить полученную модель к новым данным?
  4. Мы собираемся строить регрессию по миллиону наблюдений. Вражеский шпион получил доступ к одному из них и испортил его. Чем это нам грозит?


Продолжение следует?
Представьте себе, что вы стоите на 64-ой улице (начало клипа) и через очень длиннофокусный объектив смотрите вдоль Бродвея на 23-ю улицу (конец клипа). Проведите линию от точки наблюдения до ближнего угла дома Flatiron (он слева в конце клипа) и его дальнего угла. Эти линии будут почти параллельны. Проведите линию от точки наблюдения до угла дома на противоположной стороне Бродвея. Угол между этой линией и двумя другими будет намного больше.

Теперь сравните с картинкой в конце клипа. Там угловой размер стены Flatiron, выходящей на Бродвей, весьма приличный, сравним с шириной улицы (отличается всего раз в пять). Даже отдельные окна видно. Потому что последний кадр снимался с гораздо более близкого расстояния совсем не длиннофокусным объективом.
Название обманчивое. Если бы это был зум, то менялась бы перспектива. К концу фильма стен домов по бокам не было бы видно совсем.
Почему не может быть сортировки быстрее O(N * ln(N)), кстати, действительно полезно почитать и понять. А потом почитать про radix sort, который сортирует быстрее. Не для прохождения интервью, а потому что такой подход может пригодиться на практике.
Узконаправленный луч от источника к приёмнику тоже не панацея. У диаграмм направленности антенн есть боковые лепестки, радиоволны отражаются и интерферируют, и вообще можно повесить БПЛА с приёмной антенной где-то на пути луча.

Всё остальное отлавливается только если совсем нет шума, Даже на очень высоких частотах шум всё-таки есть, хотя бы шум входного каскада приёмника. А на низких частотах совсем несложно спрятаться под атмосферные шумы или помехи дешёвых импульсных блоков питания.

Information

Rating
Does not participate
Location
США
Registered
Activity