Быдлокод

Недавно разжился вай-фай точкой от небезызвестного производителя длинг. Надеялся на то, что быдломассы не используют такое устройство как точка доступа, а довольствуются возможностями “интернет роутера” в котром всё это сразу есть, и что поэтому в моём распоряжении будет достаточный набор функций и сносный интерфейс. Конечно же, я расчитывал на управление по SNMP, но не тут-то было! Оказалось, в моём распоряжении только “дружелюбный” веб-интерфейс, который без джаваскрипта работать не способен. Ни вам телнетика, ни эсэнэмпи. Поэтому, на некоторое время самым приемлимым способом выключения/включения (тут вдумчивый читатель может задать вопрос: “А зачем, собственно?”) стали манипуляции с блоком питания данного устройства. Понятно, что пользователь линупса настолько ленив, что долго так продолжаться не могло.

Вспомнив тут, что у меня ВНЕЗАПНО возникла необходимость освоить широкоизвестный язык OCaml, я решил попробовать изобразить на этом шедевре киберлингвистического искусства нечто, что позволило бы включать вайфайчик не вставая со стула (а точнее вообще ничего не делая, поручив дела крону). Изучив интернетики на предмет обучения данному языку я хорошенько порадовался заметной попоболи несчастных любителей икрементированного Си и отчаянно благодарил создателей иксмонада за то, что его конфиг без знаний хаскеля лучше даже не  смотреть. Наивно полагая, что единственнымипроблемами, что меня ждут будут отсутствие бесконечных массивов и классов (дорогой любитель ++C, изнвини но классы есть, а обьектов нет) я ринулся штурмовать страницу авторизации вебгуя моего изумительного девайсика. Путь до странички с конфигурацией вайфая был недолог, однако там программисты длинга зарыли настоящий клад.

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

1. Формы в закомментированных участках кода (при этом их значения важны)

2. Генерация элементов и атрибутов форм при помощи Джабба Скрипта, что несомненно упрощает жизнь тому, у кого нет соответствующего интерпретатора (совершенно непонятно, почему в таком популярном языке, такая вопиющая ситуация)

3.  Невалидные с точки зрения стандарта значения атрибутов форм (это, конечно, парсеру очень нравится)

4. Прочие нунчаки

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

darth on 24/10/2010