6497

Пули нет

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

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

Как стать программистом? Сперва научитесь работать в команде. Программист-одиночка — это утопия.

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

Учитесь пользоваться системами управления версиями, отдавая свои переводы сообществу. Git вполне подойдёт для старта.

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

Сидите на форумах в разделах типа «ищу программу» или «помощь новичкам». Это расширит ваш кругозор и прокачает скилл поиска готовых решений.

Только теперь имеет смысл выучить какой-либо язык программирования. Классическая тройка: С, Perl, Lisp. Впрочем, сейчас можно два последних заменить на Python и Haskell соотвественно. Каждый язык хорош только для своей области, поэтому знать надо всю тройку. Заодно прочувствуете на своей шкуре истину про серебряные пули.

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

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

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

6496

А канал не слипнется?

Теперь у нас есть мощные компьютеры, быстрые и объёмные накопители. Стало ли нам от этого легче? Стали ли современные машины работать быстрее тех, что были несколько лет назад?

Вот захотели вы раньше фильм посмотреть, скачали семисотметровую авишку на скорости полмегабита в секунду, записали на болванку и пошли смотреть на плеере, подключённом к большому телевизору. А что сейчас? Ждёшь, пока фильм в 30 гигов скачается, потом ещё минут 15 на флешку записываешь. Сейчас ведь и телики поинтереснее пошли, и фильм в хорошем качестве посмотреть хочется…

Нет, всё-таки не угонятся современные технологии за нашими хотелками.

6495

Приветствие первых петухов

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

Два месяца назад я работал в наушниках. Чуть позже купил аудиосистему с нехилым вуфером. Бегунки громкости в ОС я спустил, а вуфер выкрутил почти на максимум… В общем, после перезагрузки компа приветствие винды оценили многие жители нашего дома.

6494

Мышка не добежала, хвостиком махнула…

Идёт мастер-класс по бухгалтерской программе, в которой широко используются всплывающие подсказки. Подводишь курсор к любому полю на экране — появляется описание, зачем, почему и куда эта цифра идёт. Программа буржуйская, и мастер-класс проходит на английском. Лектор почему-то вместо традиционного tooltip называет всплывающие подсказки mouse drop out, слушатели его несколько раз поправляют, но молодой и амбициозный лектор упорно использует собственную терминологию.

Лекцию останавливает фраза: «As we saw in the mouse droppings for field A...»

6493

К сожалению, read only

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

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

— Мнесейчаспоэлектроннойпочтеприслалифайлаянемогуегооткрыть — вчёмпроблема?

Мы с коллегой, расслышав только окончание фразы, в один голос выдаём, не отрываясь от таблиц и цифр: «В ДНК!» — и дальше погружаемся в работу, проявляя к вошедшей Златовласке ноль внимания. Дама зависает на несколько секунд, после чего робко уточняет:

— А ДНК — это такое расширение?

К слову, прислали ей тогда рекламу какого-то порносайта.

6492

Виндоус закрыт, в нём червие

Чистил систему. В карантине Нода накопилось более двух гигов заразы. Решил почистить. Открыл Нод, карантин, выделил всех тварюшек — и нажал «Восстановить и исключить из сканирования» вместо «Удалить».

Остатки винды догрызают червячки. Я хочу в отпуск.

6491

Всепроникающее омикрософчивание

Была программа. Cамая обычная программа — на С++ с GUI. Из-за попыток сделать её кроссплатформенной внутренний интерфейс был настолько сложен, что запрограммировать новое действие означало исполнить балетную сюиту с бубном. Все ругались, но терпели.

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

Эффект проявился через два месяца. Сначала все отказались от громоздкого внутреннего протокола и стали активно использовать сделанный для скрипта СОМ-интерфейс. Вторым шагом стало повсеместное использование в коде мини-скриптов, создаваемых на лету, — и это избавило от необходимости знать методы СОМ-интерфейса. Создаёшь в строковой переменной скрипт и отравляешь одним движением на исполнение. Потом вместо диалогов повились окна с HTML-браузером, в котором Javascript коннектился с моим OLE-хостом, и в ответ на нажатие кнопки на HTML-странице в кишках программы что-то проворачивалось. Количество людей, которые продолжали программировать на С++, упало ниже плинтуса. Когда я увольнялся, всерьёз обсуждался вопрос об интеграции в приложение сервлетов и элементов протокола HTTP.

Вот и думаю: саботажник я или нет?

6490

Бес попутал

Работал в компьютерном сервис-центре. Друг моего начальника купил себе недешёвый ноутбук и пришёл к нам за «нужными программками». Естественно, шеф отправил мужика ко мне.

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

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

Вера — верой, а делами подтверждать её надо. Хотя бы на блудниц не смотреть.

6489

Саурончик по соседству

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

Правдами и неправдами деньги были собраны (мы тоже скинулись, ибо район нам понравился), и начался ремонт. Не успел он закончиться, как появились следы малого вандализма: кто-то опалил перила на трёх этажах. На «Задолба!ли» есть немало постов о том, как были загажены свежевычищенные подъезды, так что мы сели думать о мерах защиты.

Судьба осчастливила нас почти новой купольной IP-камерой, у которой был испорчен PTZ-механизм, но остальное работало замечательно, включая ИК-подсветку. Никого не оповестив, мы договорились с монтажниками интернет-провайдера, что они за некоторое количество пива протянут линк от нас к камере, которую мы разместили на нулевом этаже напротив входа. Слежка за вандалами началась!

Купольные камеры мало похожи на обыкновенные, так что никто не проявил к тёмной полусфере интереса, да и освещение в подъезде было никакое — ИК-подсветка, помните?

Итак, в результате месячного наблюдения были выявлены:

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

2. Мальчик-отличник, приехавший в родственникам на лето, тщательно украшающий свастиками новые почтовые ящики.

3. Тётя в домашнем халате и бигуди, ежедневно выносящая пакет с мусором к парадной двери.

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

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

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

6488

Андеграундно

Проблемы с кодом бывают не только у программистов и тестировщиков.

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

Идею надо воплощать, а то её воплотит кто-нибудь другой. Учёный нашёл не обременённого воображением бизнесмена и получил у него деньги на исследования. О том, что бизнесмен был не обременён воображением, красноречиво свидетельствует тот факт, что он дал денег: не подумал, каково будет людям гулять по залитому мертвенным сине-голубым сиянием парку («объявляется набор в анатомический театр-труппу»), или о том, каково будет людям жить рядом со светящимися по ночам парками (здравствуй, Чернобыль!), или о том, как поступить с уже имеющимися деревьями.

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

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