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

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

4066

Код течёт в наших венах

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

— Я уже сутки не коммитил. Надо уже что-то делать, а не обсуждать.

— Ломка началась!

Суровые программисты не могут без общения с версионным контролем.

4040

Свет в конце строки

Однажды поздно ночью, дописывая на ноутбуке очередной проект, я заметил, что при нажатии на кавычку мой ноутбук странно подсвечивал клавиатуру и комнату, а при повторном нажатии эффект пропадал. Мистика?

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

Больше спите, программисты!

4030

Длинный-длинный

Ковыряю проект в Си-Билдере. Понадобилось узнать, какой тип имеют члены TRect. Меня вынесло в windef.h, где тип был заявлен как LONG. А что такое LONG? Правильно, в winnt.h есть замечательные строки:

#define VOID void

typedef char CHAR;

typedef short SHORT;

typedef long LONG;

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

4004

Ни кола, ни бабла

Пропалываю работные сайты родного города. Обнаруживаю достаточно много вакансий с требованием знания языка C. Именно Си, а не «плюсов» и «шарпа». Вокруг требования сплошь и рядом какие-то эникейные задачи стоят, да и цена вопроса копеечная.

Стало мне странно — позвонил в несколько контор. Оказывается, многие считают, что язык C — это тот суржик, на котором пишутся скрипты к 1С.

3958

За версиями — глаз да глаз

Захотелось сделать свою ветку одного популярного фреймворка для разработки мобильных веб-приложений. Но вот ведь незадача: репозиторий весит 41 МБ, а я на даче — подключение не безлимитное. Странно... Так, стоп! Что здесь делает папка /videos? Американские разработчики впихнули в репозиторий несколько «видосов», совершенно не имеющих отношения к делу, для того, чтобы показать работу HTML5 на айфонах. Что же делать?!

VDS спешит на помощь! Подключаюсь по SSH, создаю ключ, скармливаю его Github’у, качаю репозиторий, наслаждаясь скоростью в мегабайт в секунду. Удаляю жирную и ненужную папку, «толкаю» изменения обратно. Ладно, так уже лучше. Выхожу из SSH и ставлю скачиваться к себе.

Так, стоп: уже 5 МБ скачалось. Не дело это. Скачиваю с Github архив — 225 КБ. Захожу на VDS опять. Вспоминаю, что распределённые системы контроля версий — они такие распределённые, что оставляют удалённые файлы. Вообще-то правильно: что-то важное удалил — revert и готово. Не надеясь ни на что, открываю Гугл. Быстро находится решение для удаления файла из всех ревизий. Уже почти получилось...

Смотрю вывод ifconfig — 30 МБ потратил. Мда, лучше бы скачал как есть.

3937

Против мозга

Три дня уже сплю по два часа: горит проект, и после работы я продолжаю трудиться над ним дома. Мозг иногда стал идти на принцип и проверять, сплю я или нет.

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

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

Всё, спать, спать, а то понапишу тут ещё сейчас! 2:1.

3931

Пыхнуть со знанием дела

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

— %professorName%, скажите, пожалуйста, а ваш сын может сделать интернет-магазин?

— Ну, если маленько подучится...

— А онлайн-кинотеатр?

— Нет.

— А систему моделирования «%systemName%» с веб-интерфейсом?

— Нет.

— Тогда, пожалуйста, запомните раз и навсегда: сложность задачи и простота средства реализации — разные вещи.

3926

Здесь будет заголовок

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

Не забыть заменить этот файл на текст настоящего ЛС перед компиляцией.

Надеюсь, хоть в самом драйвере подобные промахи не попадутся.

3913

Дух времени

На Delphi я с 1998 года (тогда это был Delphi 2). Лет пять использовал Delphi 3 — подходящий компромисс между мощностью и компактностью. Наловчился конвертировать формы из текстового формата Delphi 4 в двоичный Delphi 3; в помощь себе написал компонент TObjectList — в отличие от TList, он умел уничтожать объекты, когда те будут не нужны.

На моей первой работе стояла седьмая версия Delphi. Я притащил туда свои модули, в том числе и objlist. Жил — не тужил, программировал тысячи строк, читал MIDI и писал PNG, пока случайно не нажал F1 на идентификаторе TObjectList. Оказалось, такой объект в Delphi 7 уже есть! Телепатия?

Портирование свелось к замене objlist на contnrs.

3889

Чемпионат мира по конуростроению

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

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

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

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

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

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

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

А мы с напарником — что ж, мы и есть те самые собаки, для которых все это строится.