bash.im ithappens.me zadolba.li
11486

И молодая не узнает, какой у файла был конец

8 октября 2013, 07:15

Знакомо ли вам сообщение программы «Не могу открыть файл» с последующим выходом? Мне — да. И это уже расстрел. Расстрел того программиста, который так написал. Потому что не написано, где именно программа ищет файл, и не указано, почему именно она этого не может сделать.

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

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

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

11485

На рычаг надейся, а сам не плошай

8 октября 2013, 07:15

Давным-давно на дворе стояли последние годы советской власти, а я был маленьким дошкольником, обожающим игровые автоматы. В те годы они были либо полностью механическими («Морской бой» — помните такую прелесть?), либо с очень-очень примитивной графикой на уровне приставок Atari.

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

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

Становясь старше, я открывал для себя всё новые и новые автоматы с машинками в разных местах города. Играл везде, где только мог. Ни на одном автомате попытки рвануть рычаг ни разу ни к чему не привели.

В минуты ностальгии до сих пор иногда терзает мысль: в чём причина? Рычаги — все до одного! — к началу девяностых износились? Или доблестные советские инженеры изначально сделали их неработающими?

11484

Жди ответного гудка

7 октября 2013, 07:45

Маленький подмосковный городишко, скажем, Энск. В этом Энске всего пара школ. Да и зачем больше — население всего 20 тысяч душ, и все друг друга знают.

В одной из школ Энска — компьютерный класс. Ваш покорный слуга — учитель информатики. Один из учеников — сынок кого-то там, кто сидит рядом с мэром. Считает, что всё ему можно. Соответственно, на моих уроках делает что хочет. Компы не сильно старые. Сидит, играет, мне урок вести не мешает — и хрен с ним. Но от кого-то он научился: чтобы компьютер работал быстрее, надо его пнуть. Хорошенько так. А платить-то мне — «хозяину кабинета»…

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

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

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

11483

Спаси, сохрани и забэкапь

7 октября 2013, 07:45

Почитал я тут всякие IT-истории — про то, как сервер упал, как база данных накрылась… И представил на секундочку, что Бог (или кто там его замещает) и сотоварищи — такие же компьютерщики, как многие из вас.

Вот идёте вы на работу. Заглючил какой-то движок, сервер упал, и вы тоже упали. Остановка сердца. Появляются ангелы-админы:

— Так, быстро-быстро бэкапчик.
— Когда последний был?
— Ага, вот, тут он просыпается!
— Накатываем-накатываем. Всё!

Хоп — и вы сидите на постели, только проснувшись.

Я ни разу не компьютерщик, и морали не будет. Будет вопрос: может, поэтому вы иногда опаздываете на работу?

11482

Sphere is the new cube

7 октября 2013, 07:15

Сегодня у меня произошёл разрыв шаблона.

Решил поменять красивости рабочего стола и посмотреть на разные интересные плюшки. День выходной, можно и побездельничать. Захожу в настройки KDE Plasma — Поведение среды рабочего стола — Края экрана. Щёлкаю на нужный мне край и вижу такое вот меню:

— Куб с рабочими столами — Куб
— Куб с рабочими столами — Цилиндр
— Куб с рабочими столами — Сфера

Я, конечно, понимаю, что это трудности перевода, но я всё равно больше никогда не буду даже думать, что такое Gentoo и KDE по-русски…

11481

На одной ноге и честном слове

7 октября 2013, 07:15

Работаю эникеем. Очередной вызов: «Компьютер не включается». На пороге тётечка лет пятидесяти. Ведёт в комнату, там старая тачка. Включаю. Сигнал одинарный. «Уф, ну, хоть признаки жизни есть», — думаю я. И тут перед моими глазами возникает GRUB. «А у вас что, линукс стоит?» — удивляюсь я. «Ну да, мне сынок установил…» Ещё раз удивляюсь.

Спустя тридцать секунд тачка вырубается. Разобрав, увидел кулер на ЦП, который просто болтался на одном креплении. Удивившись, как он не сгорел, мажу заново термопастой и ищу второе крепление… но его нет. Мать старая, крепления нового не найти. Как быть? Но я нашёл выход. Крепление подпилил ножом сбоку и закрепил кулер за выступ, выпиленный в пластмассе. Ну и что, что криво стоит, зато радиатор полностью на камне расположен и комп не выключается. Работает как часы.

А тётечка та ещё и пакет яблок всучила помимо денег, добрая душа.

11480

Как уснувший в ночи светлячок

6 октября 2013, 07:15

У антенны мигает неонка,
Как уснувший в ночи светлячок.
На столе притулилась колонка,
И DX’ы летят, как в сачок.

Прохождение нынче на славу,
И Австралию слышно порой.
Ох, друзья мои, как мне по нраву
Слушать корреспондентов сквозь вой!

Отдохну, погляжу на дипломы,
Полюбуюсь скупой их красой.
Как же здорово здесь, сидя дома,
Разговаривать с целой Землёй!

Всей ладонью, как грушу на клизме,
Обниму чёрный шарик ключа.
Пальцы сами, на автоматизме
Этот опус тебе настучат.

На ключе позолочены клеммы,
Приоткрыт аппаратный журнал.
Дорогая, сквозь все QRM’ы
Я тебе эти строки послал.

Пусть морзянка найдёт тебя где-то,
Пусть напевы её просвистят,
Что кладу я на ваши тырнеты
Вот такую вот ГУ-50!

На Скайлинки кладу и на Йоты,
На вайфай, эзернет и ваймакс,
На модемы, смартфоны и соты
Я кладу вот такой WeatherFax,

И на все социальные сети,
И на Скайп, и на Флеш, и на SDRAM,
А особенно в вашем тырнете
Я кладу на тупой Инстаграм.

Не понять вам, с планшетом в сортире,
Быдлокодерам и ламерам,
Красоту путешествий в эфире,
Где бродить только нам, мастерам,

Где морзянка чирикает звонко,
И, похожая на маячок,
У антенны мигает неонка,
Как уснувший в ночи светлячок.

11479

Эффект плацебо второго уровня

6 октября 2013, 07:15

Принёс наш товарищ на работу что-то кактусообразное, поставил около монитора. Уж не знаю, «собирать радиацию» или ещё что. В общем, поливает, к свету поворачивает, ухаживает. Через две недели уходит в отпуск и просит позаботиться о «питомце». Я в течение месяца эту колючку-переросток обхаживаю, а так как отношения с цветами плохие, искренне беспокоюсь, чтоб кактус не сдох. И вот возвращается хозяин из отпуска:

— Кактус поливал?
— Поливал!
— К свету поворачивал?
— Поворачивал!
— А он вообще-то искусственный… Поржать принёс!

11478

Тест на вшивость

6 октября 2013, 07:15

Процессы в разработке софта печальные, тестируются продукты плохо…

Работаю в довольно крупной компании, занимающейся в числе прочего QA (обеспечением качества). Мне таки есть что сказать об автоматизированном тестировании. Большинство решений в кровавом энтерпрайзе — лютый ад. Конечно же, поскольку автотесты — тот же программный продукт, то для них характерны всё те же проблемы, что и для ПО, только всё ещё печальнее.

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

1) Бывшие функциональные тестировщики. Эти ребята обычно хорошо понимают процессы QA, но плохо понимают, как этого добиться с помощью имеющегося инструментария, а уж тем более как этот самый инструментарий подобрать исходя из задач. Хуже всего — когда они примеряют на себя роль «очень-крутого-парня-который-теперь-лучше-других».

2) Технические специалисты, уровня знаний которых достаточно, чтобы делать грамотные решения автотестов, но недостаточно для разработки. Как правило, далеки от QA и мечтают вырасти или в менеджеров, или в разработчиков.

3) Автоматизатор-единорог: технически подкован, чётко понимает процессы и задачи QA. В природе практически не встречается.

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

4) Индусы и примкнувшие к ним. Люди, умудряющиеся сделать предположение, что KDT — это Keyboard Driven Testing, рисующие XPath-локаторы вроде //*[@id='some_id'] и т. п.

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

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

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

Может, коллеги меня поправят, и всё не так грустно где-нибудь в другом месте. Пожалуйста…