Как стать автором
Обновить

Комментарии 36

НЛО прилетело и опубликовало эту надпись здесь
а если сделать отдельный стенд и считывать коды с токенов библиотекой — то это будет такое же нормальное промышленное решение, как и история №2.

Возможно, я слишком долго вращался в «кровавам интерпрайзе», но истории №2 и №3 — это обычные жизненные истории (отгородиться от идиотизма и сделать работающее решение), из разряда «а что тут такого, все логично ?»
№1 — это конечно патология.
А №4 — это один-в-один проект с моего прошлого места работы. Только у них лапша в коде одного языка — javascript, а не CGI через SSI, с включением скриптов на awk, shell, tcl::tk и внезапно С…
(UPD: а увидел я это добро потому что «ну да, ты у нас по контракту на С# пишешь, но ты же справляешься классно, помоги там ребятам лигаси код посапортить». Прихожу, и что я вижу: ребятам пришло уведомление, что у них XSS+CSRF+SQL\HTML\* injection-ы и т.д. и т.д. А у ребят все ходят под рутом везде, и в БД, и файлы ап\даун-лоадить можно любые. И пароли — все хранятся в открытом виде. В общем — придумайте любое секьюирити нарушение, там оно будет.… еле оттуда сбежал ....)
3 — это скорее «отгородиться от идиотизма бюрократии и сделать свой идиотизм»
по крайней мере — у них идиотизм рабочий. У бюрократии — когда как.
Я уже столько раз сталкивался, что проще посмотреть в код (который годами уже работает и используется в продакшене людьми), чем найти документацию по той же функциональности (которая была написана 10 лет тому назад двумя-пятью людьми, согласована и внесены правки на совещании аналитиков, все уже уволились\на пенсии, архив частично оцифрован и т.д.)
Судя по описанию того случая — «рабочий» является единственным преимуществом над бюрократией. И даже вы хотели бы посмотреть на утвержденную документацию по функциональности — это бесполезно, потому что разработчики на нее забили.
ну, посмотреть на утвержденную документацию я бы хотел только для бюрократических игр (на ее основе гораздо легче продавливать решения — она же утвержденная! или топить существующую систему — потому что любые разночтения можно толковать в пользу «срочно переписать» и т.д.)
А так — спрашиваешь у людей: «как вы работаете с Х?», они описывают «сюда файлик, тут вчерашняя дата, а там — нажимаю кнопочку и вуаля — отчетик в пдф, я из него табличку копирую на 10й странице». Потом идешь и выписываешь формулы — что хочет та табличка, когда ее код печатает, куда-откуда берет данные и т.д. При таком подходе можно быть хоть как-то уверенным, что будет рабочая часть документации.

В этой байке кое-что не сходится. На токене нужно нажать кнопку, только тогда он покажет одноразовый код и выключится через некоторое время (порядка 20 секунд). Просто приклеить коробку с токенами перед камерами бессмысленно.

есть разные токены.
Конкретно эти токены — постоянно показывают код (я сам с таким ходил), и меняют его на новый каждые 60 секунд.
Так точно, эти и предыдущие SecureID код постоянно показывают, я некогда их сам сотрудникам раздавал, вещь хорошая, хотя и не дешевая…
… а ещё я её пилил, сначала интереса ради, но потом этот интерес оказался не праздным, из сигналов управления сегментным жк индикатором, микроконтроллер восстанавливал цифры и отправлял их в КОМпот ;-) И я знаю ещё как минимум двух людей, которые «распознавали» цифры с индикатора через вэб камеру…
Нажимать сервомашинкой?
Ну я знаю историю, где вместо сервомашинки использовался обычный cd привод, который открывался командой «Eject» из системы, куда заходили через удалёку. Второй вариант был более автоматизированный — в планировщике висел скрипт, который парсил текстовый вывод результата пинга — как только пропадал пинг до узла, привод открывался, лоток нажимал кнопку, после чего, встретив усилие, заезжал обратно в системник.
Гениально.
зачем «парсить текстовый вывод», если у ping есть код возврата и прекрасно работают такие конструкции:
ping server -n 1 -w 1000 || rasdial vpn
А если вот так? ;-)
Или вот так:
А что во второй истории странного-то? Ручное преобразование float в int средствами имеющегося DSL? А если автору истории показать Fast Inverse Square Root из Quake, он в обморок упадёт?
Я вот тоже не понял. Конфиг того же FreeSWITCH пишется (в одном из вариантов) на чистом XML, и да, там есть логика. Условия, переходы, присваивания и вот это всё. Сколько лет работаю — никакого WTF от этого не ощущаю.
Я не очень понял первую историю. Какой смысл платить рекрутинговой компании огромные деньги, а потом не давать работать сотрудникам в полную силу?
НЛО прилетело и опубликовало эту надпись здесь
Предположу, что начальник покаким-то причина был против «обучения разработчиков» и внедрения какого-то программного пакета. А руководство компании наоброт, от этой идеи было без ума, поэтому и шло на любые затраты. Но тогда бы хоть план какой-то составили, отслеживали выполнение и т.д.
самое простое: потому что платит — один, а не дает работать — другой (который уверен, что вы его «подсидите»).

Может быть множество причин. Начиная с банального отката (свой человек в рекрутинговой компании затем делится частью бонуса с начальником), заканчивая, тем, что начальник, у которого больше подчиненных, имеет больше веса, полномочий, больший бюджет.

НЛО прилетело и опубликовало эту надпись здесь
Такое бывает для постоянки: если кандидат уходит раньше определенного срока (обычно год).
За контракторов в описаном сценарии платят по факту отработанного времени, поэтому ни о каких возвратах денег речи идти не может.

Обычная ситуация — интересы менеджеров в общем случае не обязательно совпадают с интересами компании.
НЛО прилетело и опубликовало эту надпись здесь
Как это вижу я:
Техдир (или кто там этот Брендон) занимает свою позицию очень давно (обратите внимание на фрагмент про эргономичное кресло из середины девяностых к которому «приклеился» Брендон, автор явно намекает нам что персонаж тут с тех самых времён и уже сросся с должностью). И похоже что справляется он не очень, за годы его руководства накопился огромный технический долг, и видимо недавно проценты по этому долгу стали настолько большими что бизнес больше не мог игнорировать их (возможно новые требования госрегуляторов, которые компания не могла выполнить, были последней каплей).

Бизнес потребовал от Брендона чтобы тот решил проблемы которые накопились за долгие годы его руководства.

Сделать этого Брендон не мог или не хотел. Возможно не хватало способностей, возможно он просто не хотел ничего менять в жизни.

Брендон начал начал втирать бизнесу что накопившиеся технические проблемы во-первых нерешаемы, во-вторых являются естественными и неизбежными следствиями особенностей их бизнеса («у нас просто климат такой, и менталитет…»), а вовсе не результатами его профнепригодности.

Бизнесу приходит в голову идея призвать варягов, былинных богатырей которые прискачут из Кремниевой долины на белых гироскутерах и сразят всех багов своими аджайлами и блокчейнами (что-то такое финдеректор слышал краем уха на одной конференции).

Брендон понимает что если варяги-программисты за пару месяцев сделают больше чем его команде удалось сделать за последние годы, то следом за ними придёт варяг-техдир который сгонит его с такого привычного эргономического кресла (потому-что слепота бизнеса не безгранична). Брендон втирает начальству что былинные богатыри берут дорого, и вообще существуют только в сказках. Читаемый продакшен-код это что-то вроде филосовского камня, многие люди утверждают что он у них есть, или что они могут его создать, но все они — мошенники. Ну то есть в других предметных областях может и бывает, но не у нас, у нас своя специфика… климат там, менталитет…

Но бизнес всё-равно готов сделать ставку на эту призрачную надежду, «не важно, сколько придётся потратить». Видимо всё действительно очень плохо.

И тогда Брендон, который будучи техдиром принимает участие в процессе призыва варягов, саботирует этот процесс как может, раздувает ценник (хотя тут HR-агенство могло справиться и само, главное ему не мешать) и всячески мешает работать призванным варягам. Ведь если они не справятся то этим подтвердят его правоту и его невиновность (видите, даже варяги за 10005000 денег не справились, вот настолько у нас неразрешимые проблемы). Ну а если они справятся то… смотри выше про варяга-техдира
Да, похоже на правду.
и еще один вариант — обеспечение будущего фронта работ:
1. при таких методах — работа будет всегда
2. и при определенном умении можно будет немного раздуть штат, что автоматически повысит бюджет проэкта, что автоматически повысит важность владельца этого проэкта (и его бонусы).
Думаю, что метод разработки ПО, использованный этой командой — это новоиспечённая система под названием «Долби по клавишам CTRL-C и CTRL-V keys!!!!!!11!!!!11!11». Уверен, что в ближайшее время она заменит Agile.

Новая? Её еще в 2013м году на русский перевели: https://habr.com/ru/post/203646/

В те далекие времена когда MSSQL server (< 2008) позволял писать extended Stored Procedure на C++ и они исполняйлись в основном потоке у меня возникла необходимость читать SRVDECIMAL (эдакий псевдотип для передачи чисел) как __int64.

Никакое гугление не помогала, потому что кто в силен на SQL не пишет на C++ а кто силен в С++ не лезет к базам.

Методом научного тыка пришел к следующему решению:

__int64 DBDECtoi64( DBDECIMAL &val )
{
    __int64 result = 0;
    for(int i = MAXNUMERICLEN-1; i >= 0; i-- )
    {
        if( val.val[i] > 0 )
        {
            result += val.val[i] * __int64(pow(256, (double)i ));
        }
    }
    return result * ( val.sign == 0 ? -1 : 1 );
}
кто силен в С++ не лезет к базам.
да ладно вам — лезем, еще как лезем! (но редко и потихоньку)
__int64(pow(256, (double)i )
1LL << (i*8), не?
К вопросу из последней истории — у RSA есть софтварные токеногенераторы.
Есть RSA SecureID для телефона и для компа
Больше всего поразила функция Month2Num — ну надо же было месяцы переупорядочить, чтобы первыми шли те в которых 31 день, а последним — февраль!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории