bash.im ithappens.me zadolba.li
12651

Сам себе супостат

21 сентября 2014, 07:12

Несколько лет назад работал я сисадмином в крупной сети компьютерных магазинов. Всё было серьёзно: был отдел сисадминов, отдел внедрения и сопровождения 1С и отдел разработки, которые писали и вели интернет-магазин.

И вот как-то приходит к нам начальник отдела разработки и говорит:

— Ребята, можете помочь? У меня с базой проблема.

— Не вопрос, в чём дело?

— Да постоянно обращается к базе какой-то левый айпишник. Можете пробить, кто это?

— Давай адрес.

— 127.0.0.1.

12649

Деды воевали, мы не отстаём

Занимаюсь поддержкой и доработкой модуля CRM биллинговой системы. По функциональности очень жирный модуль: около 200 визуальных форм, по сути, одно из основных рабочих мест биллинговой системы.

Разработка начиналась около 15 лет назад на средстве разработки, столь популярном тогда на территории экс-СССР, названном в честь древнегреческого города. Тогда это был передовой край IT — визуальное средство позволяло быстро и качественно рисовать пользовательский интерфейс. А архитектура этого средства позволяла дорабатывать стандартные компоненты и классы, разрабатывать свои собственные или использовать сторонние, что повышало качество и привлекательность создаваемого программного продукта.

В отличии от маститых конкурентов, имевших тяжкий груз наследия старого кода, разрабатывали уже трёхзвенную архитектуру, чем немало гордились. Вот, мол, у них надо драйвера базы ставить (драйвера Оracle поставить и настроить — это довольно муторно, если рабочих мест за сотню с лишним), кому-то ещё фреймворк для работы клиента, а у нас тонкий клиент: создал ярлык на экзешник с файл-сервера, и уже всё работает. Конкуренты апеллировали, что клиентские места надо создавать в средствах разработки, которые заточены для работы с БД и прям со структуры базы сами рисуют пользовательский интерфейс (страшный и кривой, зато возиться не надо), а не на вашем комбайне, на котором только утилитки десктопные строгать.

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

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

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

К чему это я? Да все к тому же баяну, повторяемому тут на каждой странице: холивар вечен и повторяется на каждом витке развития технологий. А каждой технологии своё место и своё применение.

12648

Комплимент от шеф-повара

20 сентября 2014, 07:00

Не так давно сканил систему на вирусы. Немец нашёл зараженный download.exe, валявшийся где-то во временных файлах. Хм, где же я мог его подхватить? А, ладно: удалён — и будет с ним. А вчера судьба подарила мне шокирующую разгадку.

Решил я побаловаться: заболванил лайв-Убунту (дабы кой-чего потенциально опасное выкачать), отцепил жёсткий, загрузился. Нахожу искомую ссылку, отправляюсь на Letitbit за архивом, выбираю бесплатную закачку. Минутный таймер только-только запустился, попутно открывается пара-тройка всплывающих окон (как обычно), а с ними… запрос на сохранение файла download.exe размером 280 с чем-то килобайт. Офигев от такой наглости, запрос, естественно, отклоняю.

Вот как, как они могли? Вот так беспардонно и неприкрыто наряду с простым открытием рекламных веб-страниц предложить мне загрузить экзешник, которого я не просил! Который отличается расширением и на четыре десятичных порядка по объёму! А под виндой, видимо, прокатывает. И если даже я отклонил в своё время загрузку, экзешник успел упасть в кеш. А в базах его ещё не было, вот он и лежал, пока сканированием по нему не прошлись.

12647

Для кого работаешь, разработчик?

Автор статьи «Вымышленный мир менеджера» осудил автора статьи «Moron-driven development» в преувеличении роли менеджера, при этом очевидно преувеличивая и свою роль.

Работу выполняют только разработчики и инженеры? Хорошо, выполнил ты свою работу — теперь попробуй её продать. Никто не покупает? Странно…

Прежде всего нужно понимать роль каждого сотрудника в компании и кто за что получает деньги: если ты разработчик — разрабатывай, если ты менеджер — продавай. Если ты считаешь, что можешь сам разработать продукт и впарить его заказчику, сообщи об этом руководству компании — шеф с радостью уволит менеджера и будет платить тебе половину его зарплаты. И вообще, зачем тебе шеф, если ты сам можешь добиться успеха на мировом рынке?

Почему у буржуев разработчик себя лучше чувствует? Потому что ты не работал в буржуйской компании и наслышан об их райских условиях из рассказов бабушек у подъезда. У них тоже есть свои проблемы, просто не такие, как у тебя. А тебя буржуи к себе не берут не потому, что ты не хочешь, а потому, что ты им не нужен.

Почему менеджер хочет прикрутить свистелку? Потому что твой проект с двумя кнопками заказчику скучен и непонятен. Он задаст два вопроса: «Что я получу?» и «Сколько это стоит?», а после ответит: «Окей, я подумаю» — и навсегда ускользнёт. Свистелка даёт возможность менеджеру впарить продукт, представив её модной фичей, которой нет у конкурентов. В результате своей работы менеджер зарабатывает деньги не только на свою зарплату, но и на твою.

Не успеешь сделать до среды и не хочешь читать книгу по тайм-менеджменту? А стоило бы, потому что из этой книги ты узнаешь о том, как не делать сотню дел до среды. Есть простые способы всё успевать:

  • не обещай, если не уверен;

  • предупреди, если не успеваешь;

  • предупреди, если остались недоработки;

  • если задач несколько, выясни их приоритетность.

Соблюдая всего несколько правил, ты научишься не рвать попу там, где это никому не нужно.

Задача разработчика — твоя задача — оценить срок выполнения работы с запасом и озвучить его, потому что никто не сможет оценить срок лучше тебя. Если тебя не услышали — это не твоя проблема, потому что ты имеешь ценный аргумент: «Я же предупреждал». Если с твоими сроками не согласны, есть другой аргумент: «Найдите того, кто сделает быстрее». Если ты умеешь обосновывать свои сроки, никто не заставит тебя укладываться в меньшие.

Менеджер хочет свистелку? Ты получаешь деньги за прикручивание свистелок. Такая у тебя работа — сидеть с утра до вечера и крутить свистелки. Предупреди, что свистелка затянет проект на два дня, и менеджер сам начнёт думать, так ли она ему нужна. Считаешь, что твоё божественное происхождение не позволяет крутить свистелки — сообщи начальнику, пусть повысит тебе зарплату или уволит на фиг.

Программист отвечает за успех продукта? Значит, ты не там работаешь — найди нормальную компанию, в которой каждый занимается своим делом. Ты же специалист, найти работу для тебя не проблема — тебя везде хотят и ждут. Никогда программист отвечать за успех продукта не должен — это технический специалист, который должен получать фиксированную ставку и премии, если успевает крутить свистелки быстро и качественно. Если компания работает в убыток — это не проблема программиста, это недоработка менеджера, который неправильно избрал стратегию продажи.

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

Для кого ты работаешь, разработчик — для себя или для заказчика? Если для заказчика, тогда изволь выполнить все его капризы и дать ему ощущение важности его роли. Если для себя, тогда работай молча, получай зарплату и не суй нос в работу других. Менеджер как раз и выполняет роль прослойки между тобой и заказчиком — даёт возможность заказчику почувствовать, что он не в советской столовке, а в шикарном ресторане, вызывает желание обращаться снова и платить бабло, а затем бежит к унылому тебе, чтобы дождаться, пока твоя кислая рожа обратит на него свой взор и выслушает новую порцию требований заказчика.

Я занимаюсь веб-разработкой восемь лет и когда-то тоже недооценивал роль менеджера — до тех пор, пока сам не попытался продавать свои услуги. Я осознал, что программированием занимаюсь намного успешнее, чем продажами, и потому КПД выше, если каждый занимается своим делом.

Давайте уважать коллег независимо от того, какова их роль.

12646

Эмуляторы программистов

19 сентября 2014, 07:12

Смотрю я на диалог «старых» ООП-разработчиков и новых «хипстеров» насчёт отрисовки на стороне клиента и вспоминаю конец девяностых — начало нулевых. Я тогда фрилансил, и новомодные задачи типа отрисовки всей странички на клиенте, передав лишь данные, были в порядке вещей. Данные передавались через невидимый фрейм. Задачи были простые и понятные: те же новостные ленты, магазины, форумы, аукционы и прочая дребедень. Всё это отлично работало на средненьком железе того времени. Потом появилось следующее поколение разработчиков — ну, вы понимаете, максимальный упор на ООП, SQL, медленные интерпретаторы, — и внезапно оказалось, что те же самые задачи уже решаются целыми коллективами за втрое большее время и требуют многократно больших вычислительных мощностей.

Думаете, на этом ситуация прекратила ухудшаться? Ха! Появился сперва XML, удачно сочетающий тормознутость текстового формата с нечитаемостью машинного, и вместе с ним мода на передачу любых данных с помощью XML. Можно ли сделать ещё хуже? Можно! На сцену вышел XSLT, и всё стало ещё в три раза медленнее и в пять раз забагованнее (ибо валидация). У меня перед глазами был пример, как команда из пяти разработчиков полтора года ваяла самый обычный форум. При этом у них всё время кипела работа, они героически боролись с легионами багов, они переписывали кучу кода из-за «новых требований, несовместимых с архитектурой». Разобраться в этом кошмаре после них не смог никто.

Новые технологии могут облегчать процесс разработки. Делать его проще, понятнее, логичнее. Но, как и все инструменты, они хороши лишь в руках мастера. Простота их использования притянула в IT множество мути с самого дна интеллектуальной бездны. Эти эмуляторы программистов отлично владеют терминологией и часто её употребляют, но вот когда доходит до дела… Ну, вы поняли.

12645

Бюрократы, бюрократы, а я маленький такой

19 сентября 2014, 07:00

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

Есть компьютерные классы и две серверные, которые стоят на сигнализации. Год назад лично носила служебные записки, чтобы меня включили в список разрешений на один компьютерный класс и две серверные (изначально мне почему-то эти разрешения не дали), а в этом году все эти разрешения упразднены. Почему? Ответ прост: бюрократам захотелось, чтобы каждую точку могли снимать только два человека, максимум три, а я получаюсь уже лишним четвёртым человеком. На мой логичный вопрос, как быть, если в этих серверных стоят мои серверы, да и все эти классы на моем обслуживании, мне невозмутимо ответили, что в этом случае я должна попросить снять с сигнализации коллегу. А если наш факультет рассредоточен по четырём корпусам? Прикажите мне ждать, когда придёт мой коллега, у которого есть право снять эту серверную, в которой стоит мой несчастный сервер? Да, я могу подождать, мне несложно. Но! Если есть проблема с сервером, значит, в компьютерном классе преподаватели не смогут провести занятия, а значит, проблему с сервером нужно устранить как можно быстрее. Мне всё-таки ждать коллегу?

Неужели у бюрократов не возникает мысли, что мы не ради прикола или самоутверждения просим себе права на снятие с сигнализации нужных нам аудиторий? Мы — IT-отдел, мы обслуживаем компьютеры и оргтехнику. Так почему нам не дать столько разрешений на электронный ключ сигнализации, сколько нам де-факто требуется для нормальной и эффективной работы?

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

Бюрократы, скажите мне: зачем нам нужна сигнализация, которая защищает от проникновения сотрудников IT-отдела? Если вы забетонируете окна и двери в эти аудитории, то вы нас не удивите нисколько: вашими разрешениями пользоваться столь же удобно, как и запечатанными наглухо древними захоронениями фараонов или иных правителей древнего мира. Мы всего лишь вуз, а не Пентагон, и секретов федерального значения у нас нет. Так, может быть, будем хоть чуточку человечнее и станем выдавать разрешения, исходя из реальных потребностей, а не из ваших сиюминутных желаний?..

12644

Бесплатных таблеток от жадности — и побольше!

18 сентября 2014, 07:24

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

Первое. «За юзабилити и эргономику пока что денег не берут». Берут — и как раз разработчики платных программ, которые надо купить, а не лихорадочно искать им замену перед приходом Всем Известного Отдела. Специалисты по эргономике и дизайнеры тоже хотят получать зарплату не хуже, чем у программистов. Хотите хороший по вашему мнению, привычный, удобный дизайн — купите MS Office, Corel или Photoshop и пользуйтесь на здоровье. А если что-то не нравится, есть предложения по улучшению дизайна, который вам всё же почему-то оказался неудобен — есть обратная связь с разработчиком. Возможно, вам даже ответят. Возможно, замечания даже учтут в следующей версии, которую, кстати, тоже надо будет купить.

Второе. Непривычный и нелогичный интерфейс. По нашим наблюдениям, переход с МSО 2003 на МSО 2007/2010 в плане изучения нового интерфейса пользователями прошёл гораздо болезненнее, чем изучение установленного параллельно с ними LibreOfiice. И вопросов «А где?», «А как сделать?» в первом случае было намного больше. А ведь интерфейс 2007-го Офиса как раз разрабатывался с участием специалистов по эргономике.

Кстати, пункт меню «Параметры страницы», он же «Формат страницы», гораздо логичнее смотрится в разделе «Формат», рядом с форматом абзаца и форматом символа. А вот почему он в другом офисном пакете оказался в разделе меню «Файл» — ведомо только его разработчикам. Вы им, кстати, напишите — может, исправят. Хотя нет: МSО 2003 с апреля этого года уже не поддерживается.

А теперь собственный опыт. У нас, как повелось ещё с начала нулевых, почти весь софт в организации тоже был пиратским. Когда начали закручивать гайки, и не к нам, а в одну из организаций города, где работал знакомый, пришли и начали интересоваться софтом и его происхождением, то есть вероятность проверки замаячила и у нас, зашевелилось и наше руководство. Наши предыдущие просьбы купить лицензионный софт раньше отбрасывались: «Денег нет, зачем покупать, если и так всё работает?» Очередная докладная записка, наглядный пример начала проверок в родном городе вкупе с их наглядным результатом в виде немаленького штрафа — и процесс пошёл. На всё сразу денег, конечно, не дали, поэтому, кроме покупки части необходимых лицензий, для начала на все компьютеры поставили альтернативные бесплатные программные продукты и учили пользоваться. Посносили у многих специалистов дорогущие графические пакеты, которые ставились много лет назад по принципу «а вдруг пригодится» и с тех пор пользователем даже не включались. На просьбы «А поставьте мне Фотошоп, вот надо, и всё, работать без него не могу» начали реагировать: «А пиши докладную, что оно тебе точно надо». Утвердят и дадут денег — поставим. А пока на́ тебе Гимп фотографии с утренника обрезать — может, и Фотошоп не нужен будет.

Проверки так и не было, но теперь мы можем спать спокойно. Всё, что надо, лицензионное; всё, что не надо — бесплатное, и на нём определённый круг задач решается замечательно. И внезапно проявилась ещё одна особенность открытого софта — кроссплатформенность. Когда один отдел перевели на новую программу, работающую через веб-интерфейс, на их машинах отлично прижился Linux Mint с Файрфоксом и уже изученным и привычным LibreOffice, и особых проблем при переходе не возникло.

Морали не будет. У разных программ есть свои особенности, преимущества и недостатки, и на то мы и специалисты, чтобы во всём этом ориентироваться, иметь возможность подсказать начальству и научить пользователей, а не ждать, пока гром грянет, и потом лихорадочно креститься.

12643

Странные они люди

18 сентября 2014, 07:12

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

За лобовым стеклом «теслы» проносились многочисленные амишские постройки. Их владельцы с отвёртками и гаечными ключами ловко копошились в механизмах, достойных стимпанк-выставок. Джорджу было жарко — в его машине сломался кондиционер — но как купить минералку? В очень мелких магазинах, даже не амишских, принимают только наличные, а у него с собой их не было. О, ура! Одиноко стоящий банкомат под навесом!

Джордж вышел из «теслы», снял наличные и заковылял ногами, давно отвыкшими от ходьбы, в магазин за минералкой. Утолив жажду, он уселся обратно в электромобиль и поехал дальше.

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

И невдомёк было Джорджу, что, живи он в другом районе, всё могло быть иначе. Там на банкомате мог бы оказаться скиммер, после которого при первой же попытке оплатить с той же карты ещё что-нибудь Джордж бы обнаружил, что она обнулена. А тут его просто некому было устанавливать. Кстати, Джордж не знал, что амиши холодильную технику с закрытыми глазами чинить умеют. Знал бы — ещё и дополнительно сэкономил бы.


Прежде чем ругать или просто смеяться над гиками, подумайте: а вдруг именно благодаря своим странностям они полезны или, по крайней мере, безопасны для вас?

12642

То понос, то золотуха

18 сентября 2014, 07:00

День. Прихожу домой, вижу ноут. Экран тёмный. Сестра упорно утверждает, что младший брат брутфорсно вырубил винду.

Два часа упорно пытаюсь завести агрегат. После включения мелькает заставка биоса, на полсекунды задерживается загрузка винды, и тут экран гаснет. Шорткат «выключить экран» по Fn+F7 работает успешно. На клавиши реагирует, экран тёмный. Дождался отца-сисадмина, вместе поставили диагноз: сдох драйвер видюхи.

Волевым решением на следующий день переставляем винду. Вроде бы всё хорошо, но тут слетел звуковой драйвер. Ещё полдня копания в инете и саппорт-службе производителя дали любопытный результат: драйвер есть, но не ставится, а если и ставится, то не работает.

Расспрашиваю отца. Оказалось, он грейдил ноут с «семёрки», а тот драйвер был предустановлен. Скатываю драйвера на флешку и ищу чистую болванку для образа «семёрки». Хрен там был! Нету в доме чистой болванки. И это у айтишника с 25-летним стажем! Ладно, слава богу, есть хорошая утилка и восьмигиговая флешка. Качаю утилку, и тут вылезает следующий трабл: нет необходимого образа «семёрки». Спустя полчаса в инете докапываюсь до пачки образов, скачиваю необходимый и зарезаю на флешку.

Ещё через час вроде бы победа: «семёрка» стоит, графа и звук работают… А вот хрен! Отвалился вайфай. Лезу в диспетчер устройств — половина дров не работает. Ругаясь сквозь зубы, ставлю те дрова, которые есть.

Ноут сопротивлялся, ноут тормозил, ноут вис, но победа всё равно была за мной. Итак, дрова стоят, но не работает PCI-шина. Ну и хрен с ней! Запускаю установку восьмой винды — ноут перестаёт сопротивляться. All your base are belong to us, %companyName%.