bash.im ithappens.me zadolba.li
13137

Неча на железо пенять, коли руки из жопы

4 марта 2015, 08:12

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

— Алло! У тебя случайно нет лишнего роутера?

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

Но вот это случилось — я наполнил свою утробу, и, сыто улыбаясь, предложил начать. Дел на пять минут, казалось бы. Угу…

Прикол первый: железка успешно забыла пароль на доступ в админку. Где-то там была кнопка сброса…

— Марин, у тебя есть что-то длинное и тонкое?

— Невидимка подойдёт?

Подошла. Hard reset прошёл успешно.

Прикол второй: железяка упорно отказывалась пускать кого угодно в веб-интерфейс. Пляски с питанием и кабелем результатов не принесли. Ну… Семь бед, один Reset. Невидимка уже не вынимается из гнезда.

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

В общем, спустя сорок минут, два сброса и робкий намёк «может, завтра закончим?» настройки были наконец-то забиты как надо. Минута… Две… Пять… Инета нет. Лезу в настройки, перепроверяю всё. Чисто. Перезагружаю через интерфейс, вбиваю всё заново (одна из особенностей этой железки — при перезагрузке терять настройки). Тишина. Лезу в логи…

— Что значит «неизвестный хост»?!

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

— А ты знаешь, почему оно не работало?

— Ну?

— Потому что какой-то тупой я выдернул из него кабель!

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

  1. «Не гонялся бы ты, поп, за дешевизной!»

  2. Неча на железо пенять, коли руки из жопы. Даже если это железо такими же руками делалось. Особенно если ими.

13136

В любую сторону — к морю

4 марта 2015, 08:00

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

— Извините, в какую сторону к морю?

Джон ответил:

— Да здесь в любую сторону — к морю! Остров хренов…


Лёша размышлял о том, что лучше, Micro USB или Lightning. На стороне первого — распространённость зарядок, зато второй можно подключать любой стороной, не глядя. С этой мыслью он воткнул шнур питания в нетбук.

Любой стороной, не глядя! Столько лет пользуюсь, а не задумывался. Только сторон не две, а 360. Это в градусах. А в градах — 400. А с учётом отсутствия дискретности — бесконечность. И крепкий! Не то что дискредитировавший идею нокиевский «хоботок». И никаких чипов. Как в анекдоте: в любую сторону — к морю!

На экране бодро запереливалась заставка Android-x86. А в Olivetti отдельные умы задумались о выходе на мобильный рынок. Инженеры о чем-то оживлённо спорят, но в одном единодушны: новый разъём SoberPlug будет иметь в поперечном сечении форму сапога. Не спят и в Tadiran — там тоже хотят выпускать мобильники. Разъём будет напоминать по форме жало той отвёртки, которой их разбирают и собирают. Таким проще попасть не глядя — если он будет коаксиальным, а не со штырьками по вершинам. Стремится на рынок смартов и Rekam. Чего? Кленовый лист? Вот это уже сложнее…

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

13135

Добрым словом и письмом начальнику

3 марта 2015, 08:12

Добрый день, коллеги по цеху! Я бы хотел уточнить один вопрос. Как вы считаете, крокодил — он больше длинный, чем зелёный, или наоборот? Я, честное слово, с большим непониманием читаю все эти истории о тупых менеджерах/бухгалтерах/секретарях и мудрых и благородных админах/программистах.

Начнём с начала, чтобы картина моего повествования выглядела полнее.

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

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

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

Не нравится решение управленца? Так он тоже персонал. Ему тоже поставили задачу. Пытайтесь координировать усилия. Не вышло с управленцем — пишите начальству. Начальство не оценило вашей инициативы? Что ж, возможно, вы не видите всей картины.

Вы бы лучше организовали производство, ведь вы специалист? Требуйте перевода в управленцы. Уверен, начальство оценит ваши незаурядные таланты.

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

Запомните: добрым словом и письмом начальнику можно добиться большего, чем просто добрым словом.

13134

Каша без топора

3 марта 2015, 08:00

До чего же интересно читать лесорубов, как они превозносят свои топоры и как смеются над любителями лобзиков из набора «Сделай сам»! Вот только они уже и не видят, что их топор из лёгкого и удобного инструмента превратился в странный, бесформенный, абсолютно неподъёмный агрегат. Встроенная система кондиционирования, щётка для ботинок, графический интерфейс для установки дополнительных лезвий и регулировки баланса. Для использования этого устройства нужны определённым образом накачанные руки и ноги. Кроме того, дровосеку надо точно знать, какое лезвие выбрать и под каким углом рубить дерево. Малейшие отклонения баланса, неправильно занесённое или неправильно выбранное лезвие — и странная конструкция уже завязла в дереве. Кроме того, жуки-короеды очень любят лаковые красные рукояти. Поэтому необходимо постоянно следить, чтобы защитный слой был обновлён. Но всё равно риск того, что жуки обглодают дочиста, ненулевой.

То ли дело самоделки-лобзики! Их такое многообразие и так часто меняется состав, что жуки не успевают приспособиться. Можно собрать на свой вкус. Лобзик? Хорошее название для конструктора. Из него можно собрать бензопилу, а можно — станок с ЧПУ. А можно — такой же универсальный монструозный топор, как и у тех странных мужиков-лесорубов. Вот электропила-сучкорезка, вчера собрал. Работает идеально. А вот — большая бензопила типа «Дружбы». Вот пилорама. Что ж, не такая красивая и стоит не так дорого, как та, напротив. Да, и огоньков нет, рекламы по ночам. И не приезжает на трёх лимузинах техподдержка. Подарков от реселлеров тоже не видать. Работает третий год, я туда не захожу почти. Кушает втрое меньше электричества и умещается на куске земли в два раза меньше.

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

13133

Спасётся самый наглый

2 марта 2015, 08:24

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

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

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

Если на хранилище закончилось место, выдаётся предупреждение. Заметьте: не ядрёный панический алерт, вопящий во все стороны, что бэкапить некуда, а маленькое незаметное предупреждение, которое очень легко вообще не заметить. При этом машинка пытается-таки забэкапиться на хранилище, которое забито, со скоростью, которая не спеша стремится к нулю. Но и это бы ладно, но остальные машины, которые должны бэкапиться на это же хранилище, не выдают вообще никаких сообщений — они тупо становятся в очередь и ждут. Более того, они готовы ждать вечно. Когда в понедельник я увидел, что на хранилке в ночь с пятницы на субботу закончилось место, заметил очередь из 16 заданий, терпеливо ожидающих освобождения места, из всего 7 ежесуточных, ссылающихся на эту хранилку, а в каждом задании от 2 до 20 машин.

Программа для создания бэкапов, работающая с VMware не первый год, не может забэкапить отдельную VMDK-шку, если машина состоит из нескольких. И ещё один сюрприз: виртуалка не может быть забэкаплена, если в машине есть VMDK больше 2 ТБ (чё-чё?).

Управляющий сервер не может забэкапить сам себя.

Про то, что не работают некоторые заявленные плюшки и феньки, можно не говорить — про это и так слишком много сказано, — зато есть несколько совершенно бесполезных, но, определённо, привлекающих внимание (привет маркетологам?).

Короче, суть ясна, а мораль… Морали нет, просто пожаловался, вы уж извините.

13132

Джанго, освобождённый от быдлокода

Коллеги! Выбирайте технологии. Выбирайте так, чтобы потом не жаловаться, что приходится поддерживать за кем-то код «не очень красивого цвета», который ещё и пахнет соответственно.

Поделюсь немного своим опытом. Я веб-разработчик, программист, в основном бэкэнд.

До относительно недавних пор я работал преимущественно с широко известной в России CMS, отличающейся агрессивным маркетингом (вплоть до упоминания жёлтой программы в своём названии), низким порогом вхождения и широкими возможностями нарушения архитектуры. Точно так же, как и многие любители чистого и красивого кода, плакал кровью, глядя на некоторые конструкции, особенно написанные «золотыми сертифицированными партнёрами», осилившими эпический труд «PHP за 24 часа для чайников». Компонент (почти аналог контроллера в традиционных системах), который не содержит логики, а только подключает тот или иной шаблон в зависимости от входного параметра — нормально! А вся логика в шаблоне. Вплоть до обращения к БД. Да, прямыми SQL-запросами, несмотря на то, что система имеет хоть и своеобразный, но всё же ORM. А что? В учебниках для начинающих же действительно есть такие примеры, и возможность обратиться в БД прямо из HTML-файла преподносится как преимущество и неоспоримое достоинство PHP. Но ладно. Сами авторы системы тоже не ангелы. Кто-то про классы жаловался? Так вот, классы — это, по мнению авторов замечательной (без иронии) CMS, всего лишь способ логически объединить несколько функций. Большинство методов класса статические. Но в некоторых случаях нужно создавать объект класса, который будет использован только для вызова одного метода, и нигде и никогда больше. Такое своеобразное видение ООП.

Беда? Однозначно беда. Копаться в таком быдлокоде — приятного мало. Надо было что-то делать. Я изучил альтернативы и остановился на приятном фреймворке Django, с помощью которого теперь и разрабатываю сайты. Возможно, вы не поверите, но проблема чужого кода исчезла. Во-первых, оформление кода. Оно всегда и у всех одинаковое. Синтаксис языка Python предъявляет жёсткие требования. Питоновская идеология также гласит, что для решения задачи должен быть один очевидный способ. В Django эта идея поддерживается. И это помогает, экономит время и нервы. Кто бы ни писал до меня, я заранее знаю, где искать нужный код, даже если проект впервые вижу.

Порог вхождения намного выше. То есть нельзя, просмотрев один 15-минутный видеоурок, сразу начать клепать «визиточки». Нужно иметь некоторую базовую подготовку и потратить время на изучение. Это отсекает случайных людей: средний уровень разработчика на Django намного выше, чем средний уровень широко рекламируемых решений с низким порогом вхождения. А значит, и качество кода выше.

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

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

13131

Алгоритмы лайков не соберут

2 марта 2015, 08:00

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

В подростковом возрасте во мне проснулся интерес к миру IT: учебная программа трудностей в освоении не вызывала, а унять пытливый ум больно уж хотелось. Дома компьютера до 2008 года не было, поэтому на помощь пришёл мой ныне покоящийся с миром SE Z530i. Сначала это были мобильные форумы, потом первые попытки сваять Java-приложение на само́м телефоне (да, умельцы с одного сайта сделали портативную связку «компилятор — преверификатор — упаковщик), потом я вычитал в учебнике по ИКТ про основы HTML-разметки. Первые опыты создания страничек на телефоне были успешнее, чем программирование, и я загорелся желанием двигаться в этом направлении. В школе от нечего делать на этих самых уроках по ИКТ я ваял простые странички, правда, мои старания кроме меня самого тогда никто не оценил. Я всё ждал, когда учительница даст заветное задание из книжки, а я мастерски выполню его и представлю ей. Фигушки. Седьмой, восьмой, девятый класс заканчивался, мы изредка писали простенькие программки на Паскале, при этом не трогая злосчастные учебники. Лишь изредка мы конспектировали материал по алгебре логики, по тому, сколько бит в байте и байт в килобайте. Каждый год я исправно сдавал и брал новые учебники про пресловутому ИКТ, узнавая оттуда про протокол HTTP, про создание десктопных приложений на MS Visual Basic. Руки чесались сделать что-нибудь полезное, но вот даже с появившимся тогда компьютером мне не представлялось возможности достать несчастный Visual Basic. Учебники целый год проводили у меня в столе, иногда я перечитывал их от скуки. В 10 классе я даже, рискнув нарваться на немилость одноклассников, спросил у учительницы, почему мы не по учебникам учимся, а занимаемся ерундой вроде рисования звёздочек в Фотошопе, на что получил невнятный ответ, что программу так построили, что поделать. В 11 классе уроков ИКТ вообще как таковых не было, на них все готовились к ЕГЭ по своим предметам, только лишь мы с одноклассником решали тестовые задания по этому экзамену.

В чём суть столь расплывчатого повествования? Если бы в школах действительно почаще открывали эти самые учебники по ИКТ, в которых пусть даже запросы на кириллице, а реляционные СУБД управляют внезапно реляционными же БД (в компьютерных классах практику не на бумаге выполняют, поэтому опыт и осознание неточностей всегда появляется), то наверняка сайт не пестрил бы историями о бухгалтерах, которые не умеют читать сообщения на экране, или о клиентах техподдержки провайдера, которые не в состоянии найти ярлык запуска сконфигурированного соединения. Так что если на учебнике написано: «Рекомендовано Министерством образования и науки Российской Федерации», может, стоит прислушаться к рекомендации?

13130

Наука понимать буквы

1 марта 2015, 17:36

Когда человек, умеющий читать документацию, ставит на ноутбук Линукс — выходит удивительно скучно. Он читает доки, потом запускает установщик, создаёт фиксированные разделы небольшого раздела под рут, /bin, /usr и /var, а оставшиеся сотни гигов отдаёт под /home. Ещё он читал доки на USB и знает, что ток на одну пару разъёмов не может превышать пол-ампера, поэтому дополнительный «хвост» от носимого жёсткого диска нужно втыкать в разъём из другой пары, желательно — подальше. В результате всё работает именно так, как хотелось с самого начала, и никакой байки из этого не получается.

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

13129

Нет предела безобразию

1 марта 2015, 08:12

Прочитал тут про страдания одного программиста. Слёзы наворачиваются. Хочу в этот санаторий, там, где функция в 400 строк — предел безобразий. Видимо, у всех болевой порог разный, а у меня болевые рецепторы на заднице стёрлись давно. Итак, что у меня.

Есть программы на Фортране. Язык весёлый. Констант в нём нет, а параметры в программу передаются исключительно по ссылке. То есть вызов call subr(1) на самом деле передаёт в подпрограмму адрес переменной, в которой лежит единица. Значение переменной в подпрограмме можно изменить. Так я узнал, что в любой фортрановской программе есть как минимум четыре единицы (и четыре нуля, кстати), в общем случае не равные между собой. То, что print *, 0 выдаст именно «0», не гарантируется.

Есть программы на Паскале. Все пользовательские типы там именуются по простой схеме: Т1, T2, T3, T4… T55. Что вы, конечно же, есть распечатанный документ, где эти типы подробно описаны, для чего и как, но его потеряли. А переменные экономили, поэтому в разные моменты времени переменная используется для вычисления и хранения совершенно различных по смыслу значений. Поэтому называют их А1, А2, А3. Это не обфускатор. Люди реально так писали.

И, наконец, любимый С++. Реальная программа, которая лет десять назад неплохо продавалась по всему миру. Там есть три функции. Первые две содержат 45 и 35 тысяч строк. Раньше это была одна функция, но Visual C++ отказался компилировать файл больше 65К строк, и автор разбил функцию на две. Третья функция поменьше — 20 тысяч. Практически все 20 тысяч строк запиханы в отрисовку окна. Инициализация программы, парсинг DXF-файла с картой Земли, расчёт всякой астрономической фигни и, собственно, отрисовка.

Есть ещё 16 файлов машинно-генерённого С++ по мегабайту каждый, которые иногда приходится править вручную.

Могу продолжить, но мне уже грустно. А вы над 300 строками плачете…