bash.im ithappens.me zadolba.li
9849

Семь раз отмерь, один скомпилируй

10 сентября 2012, 07:15

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

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

Код лучше всего описывать, как книгу. Есть книги с сюжетом, есть с заметками на полях, комментариями автора. А попадаются творения, в которых страницы перепутаны местами (и идут ссылки, какая идёт следующей), вырваны листы, соавторы переругиваются в сносках. Сложнее всего с книгами, которые до тебя уже кто-то читал и правил авторский текст. Правки бывают логичные, обоснованные, а бывают такие, от которых хочется повеситься.

Сначала подумайте. Потом подумайте ещё раза три. Потом нарисуйте то, что вы придумали, потом на недельку положите это в стол — и уже потом пишите. А еще читайте Макконнелла. Даже если вы знаете его наизусть, всё равно читайте.

Я позволяю себе давать советы, потому что знаю: если им следовать, то мне и таким людям, как я, которые доделывают за программистами дырки в заборах, будет удобнее и проще работать. Ошибки всё равно будут, это нормально. Но их исправление не будет сопровождаться желанием засунуть некоторых программистов в газенваген.

9848

Обезжиренный жир под майонезом

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

<li class="bold-segoe-V"><span style="font-weight: normal;"><strong>пункт_списка</strong></span></li>

Вот кто так делает? Русские? Индусы? Инопланетяне?

9847

Нельзя скушать

9 сентября 2012, 07:45

Товарищ с женой в разводе, «воскресный папа», дочь-подросток прямо верёвки вьёт. Пришёл ко мне и говорит:

— Слушай, где взять ноут с грушей?
— Может, с яблоком?
— Нет, нужен именно с грушей, у дочки очередной пунктик.

Пьём чай и напрягаем мозг, откуда такая прихоть взялась. Звоню киндеру.

— Хочу на день варенья ноут, как в iCarly!

За час поисков узнал многое о PearPC (никакого отношения к этому гадскому шоу не имеющему), а также о том, что в Америке устраивать product placement в детских передачах чревато судом. Подростковое шоу боится исков от различных правообладателей и производителей, поэтому создало целую линейку пародийных продуктов: PearBook, iPear, Zaplook (Google), Chickipedia… В общем, детишки ведутся на активную «псевдорекламу», а у двух взрослых мужиков от этого бреда голова болит.

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

9846

Мой лазерный любовник

9 сентября 2012, 07:15

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

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

Сегодняшнее утро. Я отправляю на печать злосчастный отчёт и уже разминаюсь перед забегом, а он, подлец, покорно и тихо печатает документ и замолкает!

Странное ощущение — быть отвергнутой принтером. В общем, сегодня с утра я чувствую себя обманутой.

9845

Мы мигаем и поём

9 сентября 2012, 07:15

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

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

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

Помимо разговоров были предприняты меры: кирпич на капот его убитой горем и людьми «девятки», спускание колёс частично и полностью, записки под «дворники» и в дверь. Пришёл участковый, поговорил и с нами, чтобы безобразия не нарушали, и с ним, чтобы тишину соблюдал по ночам.

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

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

Уже на работе смотрю в окно и вижу — вот оно, чудо враждебной техники. Звоню со второй купленной симки на «ноклу», поставленную на беззвучный режим. Мы мигаем и поём. Сбрасываю. Появляется владелец. Удалятся владелец. И так несколько раз. Несколько дней. Пока батарейка не села.

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

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

9844

In your humble opinion

8 сентября 2012, 07:45

Дорогие друзья, почти что коллеги! Позвольте представиться: дизайнер-разработчик с функциями менеджера, который сделал карьеру до коммерческого директора крупной московской компании. Хочу обратиться к большинству гордых тружеников IT. Задолбали вы, всезнайки!

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

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

Если вас не устраивает, как дизайнер сверстал листовку, и вы считаете, что это хреновая реклама, это ваше личное мнение.

Если политика ведения дел коммерческого директора с образованием MBA, на ваш взгляд, ничем не обоснована, это ваше личное мнение.

Как вы понимаете, ключевое слово здесь — «личное». В большинстве случаев мнение вы обязаны оставить при себе. Берите пример со своих коллег по цеху, 1C- и SAP-программистов хотя бы, которые прекрасно понимают, чем они занимаются в компании. Ключевые сотрудники — главный бухгалтер и начальник отдела юристов. Запомните это, ибо, судя по опыту общения, достали вы далеко не меня одного.

9843

Оптический включатель

Недавно принесли беспроводную оптическую мышь. Говорят, что-то не работает. Начал разбираться — выключателей никаких нет, только оптика торчит, но как-то неровно. Разобрал — оказалось, оптика тупо выдавлена с посадочного места. Подошёл к хозяйке, спросил, что делала.

— Хотела включить вот этим выключателем, — и снова в оптику тычет.

9842

Перекуём сараи на ангары

8 сентября 2012, 07:15

Кто-то занимается рейдерскими захватами предприятий, обнесённых шатким штакетником. Они крадут сотрудников охранных предприятий, суют им под нос липовый договор с их фирмой и уверяют, что охраняемый ими объект принадлежит владельцу совершенно легально. Многие до кучи возводят вокруг штакетника стенку из хвороста, обливают её бензином и поджигают. Охранник жрёт за десятерых, частенько парализует работу всего предприятия проверками посреди рабочего дня. Для прохода через стену приходится выписывать кучу допусков, в том числе и самому себе, а частенько ещё и заверять их нотариально. Служащие предприятия так же похищены, как и охранник, и работают по таким же липовым контрактам. При этом на большинстве подобных предприятий всё равно случаются сбои в производственном процессе, так как посторонние туда всё же проникают и вершат свою деструктивную деятельность. Да и само предприятие зачастую напоминает эдакий сарайчик.

Кто-то покупает предприятия, но ворует сотрудников. Кто-то покупает предприятия и нанимает сотрудников, как это принято во всём цивилизованном мире. А кто-то, кто не имеет возможности и желания тратить уйму денег на приобретение всего этого гов… простите, добра, возводит огромный железобетонный ангар с пятиметровыми стенами, три метра в которых — свинец. Оснащает здание системой контроля доступа, делает мощную вентиляцию. Изнутри здание полностью подгоняется под нужды владельца. Здесь мы поставим оперный театр, тут у нас будет вольер с наглой рыжей мордой, рядом поставим трактир, в котором будет пить эль и ждать своего часа какой-нибудь великий завоеватель прошлого. В самый дальний угол поставим сарайчик, в который поселим недоношенного ослика, специально для тех поставщиков, которые до сих пор продолжают поставлять не новые арии, мясо или холодное оружие, а сено, причём настолько мерзкое, что другой скот его просто выплюнет. Вон там у нас будет стоять офисное здание, на работу возьмём тех, кто умеет более-менее сносно (а нам больше и не надо) работать с документацией. А если уж их квалификации не хватит, в ранее упомянутый сарайчик мы подселим бухов, которых либо наймём, либо, в крайнем случае, затащим обманом. Здание обслуживать будут добродушные чёртики и волонтёры. Работать будут за еду, которую потребляют в умеренных количествах. Естественно, времени, а иногда и денег на обустройство этого добра уйдёт немало, но на выходе мы получаем совершенно легальное предприятие, к тому же полностью соответствующее нашим нуждам. Переоборудовать его при необходимости недолго, и никакие строители, никакой ЖЭК и никакие условия договора нам этого не запретят.

И кто же громче всех голосит о том, что другие ущербны? Правильно, рейдеры.

Почему, мать вашу, если вы наворовали свои долбаные винды и Офисы, все должны делать то же самое? У вас лютая боль в известном месте от того факта, что даже в России не у всех в голове крутятся мысли, где бы чего сп#$&ить? Так вот, не все считают, что пиратство — это норма.

9841

Гори, стена, гори ярче солнца

Админю в небольшой конторе в далёком Замкадье. Работа не особо нервная, на полставки, но иногда бывают небольшие форс-мажоры.

Однажды, просматривая логи шлюза, вижу, что auth.log растёт как-то неестественно быстро. Смотрю и удивляюсь: в логах чётко просматривается усиленная долбёжка ко мне на сервер по SSH. Решаю проблему тривиальным образом — перевешиваю SSH на другой порт. Однако, будучи по натуре параноиком, задумываюсь над реализацией сверхзащищённого файрвола.

Начинаю усиленно курить маны по небезызвестному стандартному файрволу FreeBSD и вдруг понимаю, что та конфигурация, которая сейчас действует на шлюзе, вообще ни от чего не защищает, а наоборот, предлагает. Мысленно придумываю каламбур: «Этот файрвол ничего не файрволит, мы пойдём другим путём» — и состряпываю на скорую руку конфиг параноидального вида, совершенно упуская из вида одну важную деталь. Без тени сомнения отправляю сервер в ребут и через минуту слышу недовольные телефонные звонки от пользователей: «Нет интернета! Почта не отправляется!»

Пытаюсь подцепиться к шлюзу по SSH — болт! Поняв, что перемудрил с правилами файрвола, вылетаю и бегу к шлюзу, который стоит довольно далеко, моля админского бога о том, чтобы поблизости оказались монитор с клавиатурой. В голове бегают нездоровые мысли, что сейчас меня будут бить бесперебойниками, если ничего не заработает. Админский бог помогает, и после очередного ребута система работает отличным образом с дефолтным конфигом.

На этом я не успокаиваюсь, и пишу новый конфиг, уже разрешая SSH. Теперь-то должно прокатить! Вы уже поняли, чем кончилось дело? Да-да, опять меня ждала беготня к серверу…

Админы, если уж вы так любите SSH, не экспериментируйте с файрволом в рабочее время, а если уж и экспериментируете, то постарайтесь, чтобы сервер стоял поближе, оснащённый монитором и клавой. И ещё… Не будьте параноиками, коллеги!