Истории с тегом: программизмы

Всего историй: 900

4314

Авось рассосётся

Курсы по Delphi: начальный и профессиональный уровень. Сижу за компом. Все подходят, спрашивают, что не так, что за «division by zero». Только один сидит за компом, не вставая, вот уже около тридцати минут. Подхожу втихаря к нему. Строка с ошибкой выделена красным, а сам человек гоняет курсор из конца строки в начало, из начала в конец, туда-сюда, туда-сюда...

4313

Десятый лишний

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

// Внимание! Заменить на глобальную переменную перед внедрением!!!

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

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

4308

Подстановка подстановки

Решил повесить в автозагрузку скрипт, чтобы монтировать рабочий каталог на диск P:. Я так часто делаю, чтобы рабочие файлы можно было таскать по компьютерам с сохранением вписанных в конфиги пути. Дело простое — пишу subst.cmd с простым содержимым:

subst P: C:\WorkRoot

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

Надо меньше работать. Или хотя бы давать нормальные имена скриптам.

4299

Образ мысли и образ жизни

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

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

Я считаю, что отличительная черта истинных компьютерщиков — удивительная логичность. Они чувствуют фальшь и ошибочность на интуитивном уровне, причём во всех областях. Если начальник приказывает что-то сделать только потому, что у него зачесалась правая пятка, компьютерщик это почувствует и делать не будет до ответа на вопрос: «А зачем?»

Компьютерщик — ещё и образ жизни. Он делает все важные вещи рационально, с минимальной затратой ресурсов, если знает, как. А вот с неважными вещами позволяет себе поступить так, как интереснее.

Почему я говорю именно про образ мысли и образ жизни? Когда-то я выходила замуж за компьютерщика. Была счастлива. Но когда муж стал IT-директором — изменился. Поведение, рассуждения, устремления... Развелись мы потому, что перестали понимать друг друга. Он стал управленцем. А я осталась компьютерщиком — и горжусь этим.

4289

Другого и не ожидал

Первый раз программирую на VBA. Естественно, ошибки на каждом шагу — злюсь. Под конец компилятор выдал:

Compile Error

Expected: )

Это меня добило. Он мне, блин, ещё и улыбается!

4287

Просто песня

С точки зрения Налогового Кодекса РФ программный код приравнивается к произведениям литературы. И верно, а почему бы и нет?

if (newGame) resources.free();

s = FILENAME + 3;

setLocation(); load(s);

loadDialog.process();

try { setGamerColor(RED); }

catch(Exception e) { reset(); }

while (notReady) { objects.make();

if (resourceNotFound) break; }

byte result; // сменить на int!

music();

System.out.print("");

Смысл довольно туманный — как и полагается стихам.

4277

Вот откуда уши торчат

Я был когда-то странной константой безымянной,

Такой, что в длинном коде никто и не найдёт.

Теперь я — итератор, и каждый компилятор

При встрече сразу вектор выдаёт.

Мне не везло сначала, и даже так бывало:

Во время компиляций — ошибок целый лист!

Теперь я в Си-плюс-плюсе, на Линуса молюсь я,

Он самый лучший в мире программист!

4243

Исключив случайный фактор

Если уж все пошли вспоминать своих институтских преподов, то вспомню и я. Первый же день моей учёбы в универе был омрачён парой по информатике (или как её там), где женщина солидного возраста объясняла поточной аудитории, что в течении двух семестров мы будем изучать с ней язык программирования Turbo (тут она сверилась с бумажкой) Basic. Тут мой здравый смысл ушёл на покой, разбудив во мне подросткового быдлокодера, который выучил C++ по книжке и ещё в школе писал всем зачётные-выпускные по информатике — двумерные аркады с подробными комментариями, которые потом были дисквалифицированы за единый стиль. «Бейсик — не язык, а обучающая программа. Для высшего образования это слишком слабо! Да он проходится за неделю! Он не соответствует современным концепциям!»

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

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

— Встретимся на экзамене, — тихо ответила женщина.

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

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

— Садись за компьютер, набирай программу. Если заработает — «отлично». У тебя полчаса.

— Мне хватит пяти минут.

Методом десятипальцевого слепого копипаста я набрал код и запихнул его в менюшку: все задания в одной проге. Всё оформил, проверяю. С примером из задания — ОК. С «введите вручную» — ОК. С значениями из генератора случайных чисел, в том числе знакопеременными — неправильный результат! Я покрываюсь холодным потом: время заканчивается... Убираю из менюшки вариант со случайными числами.

— Всё готово. Проверяйте.

— Результаты сошлись?

— М-м-м... Да!

— Ну, не мне вас проверять. Пять.

Ошибку я нашёл позже. На потоке пятёрки получили всего несколько человек: я и моя «группа».

* * *

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

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

4238

ПТУшная логика

Сейчас я программлю на 1С, но во времена студенчества работал на Delphi и C++. Денег у студента нету, зато есть куча людей, у которых они есть, и они готовы ими делиться ради написанных программ. Брался я с охотой, делал максимально хорошо. Проблем с заданиями не возникало, тем более если они были толково составлены преподом.

В пору сессий «подфартило» мне взяться за задачи каких то ПТУшников. Профит ожидался небольшой, но студенту три задачи по 40 рублей, помноженные на 40 человек в группе ПТУ, могли только сниться. Естественно, меры предосторожности я принял, сперва взявшись за задачи лишь одного человека. Полчаса — и две готовы, а взглянув на третью, я понял, что задания надо читать сразу. Не буду приводить точный текст, но требовалось написать программу, которая парсит и вычисляет логические выражения.

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

Прошло много времени, но калымить желания так и не появилось. Лёгких денег не бывает.

4233

Всем на пол — это дебаг!

На работе два разработчика на повышенных тонах обсуждают настройки отображения в рабочей программе:

— Чтобы всё заработало, надо просто Альфа-Банк грохнуть — и всё!

— И давай грохнем наконец, чего раздумывать?

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