bash.im ithappens.me zadolba.li
12380

Файрвол, непробиваемый и беспощадный

8 июля 2014, 07:36

Я тот самый админ, который надувается и сидит в углу. А всё потому, что если представить моему начальнику варианты А и Б, где Б хоть немного дешевле — у него включается стоп-сигнал, и дальнейшие аргументы встречает файрвол, непробиваемый и беспощадный.

— Чтобы заставить вариант Б работать, уйдёт 100500 часов времени. На внедрение будет потрачено в двадцать раз больше нефти, чем мы сэкономим!

— Да ладно тебе! Не может быть такого. Народ же юзает как-то.

— Вариант Б будет падать при каждом чихе!

— Да ладно тебе! Не будет у нас никто чихать. Зачем переплачивать?

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

— У нас нет бюджета на это!

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

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

12379

Уж полночь близится

8 июля 2014, 07:24

Делала я свой первый сайт на Django. Ни Django, ни Python я ещё толком не знала, так что в учебниках и мануалах проводила вдесятеро больше времени, чем в IDE. Потихоньку-полегоньку сайт строился, проблемы возникали и решались, Гугл и документация — наши друзья.

На одной из страничек нужно мне было вывести список мероприятий в рамках проекта. Мероприятия добавлялись в админке, естественно; у каждого были параметр «дата и время проведения». Что характерно, в модели (и в базе) это один параметр типа datetime, а админка по умолчанию использует для него два поля — под дату и под время. На страничке же мне нужно было, чтобы был заголовок типа «Август 2014», а под ним — список мероприятий на этот месяц.

Для начала вывожу просто список всех событий, отсортированный по дате — всё работает. Курю маны, пишу группировки, чтобы события каждого месяца объединялись в один список. Навожу красоту, так, что имя каждого списка становится объектом datetime — так его можно будет потом красиво отформатировать в шаблоне — работает…

И тут я вижу странный баг.

Было у меня специально забито тестовое событие, которое уже прошло — от 1 июля 2014 (забивалось оно четвёртого). Казалось бы, заголовок над ним должен гласить «Июль 2014» — а на меня смотрел «Июнь». Проверяю базу — в базе июль. Проверяю группировку — всё верно, остальные месяцы правильные. Чешу репу, курю маны, ставлю отладочные выводы…

Доходит. В настройках проекта у меня было указано, что мы живём в России, более того — в Москве, и время у нас спешит на четыре часа по сравнению с UTC. Django умный и за временем следит сам; в админке же при вводе времени есть специальная кнопочка, которая подставляет в поле текущее время. Дату — первое июля — я ввела руками, а время поставила текущее: час ночи с копейками. В базу же записалось «правильные» время и дата — что-то около девяти вечера 30 июня. Django-то умный, он к датам положенные часы сам прибавляет, а вот функция группировки ничего про наше местоположение знать не знала.

Покурив маны, вытащила июль из июня.

Вывод: работать по ночам полезно для вашего кода!

12378

Интенсивные курсы дегельминтизации для самых юных

8 июля 2014, 07:12

Снова привет! Ещё одна маленькая история про профи и «руки» времён популярности всяких блокираторов винды.

Профи (назовём его Андрей) и «руки», утренний вызов, работа в тандеме. «Руки» уже приехали к клиенту, но что-то не заладилось. Андрей несколько грубо сказал в трубку фразу в стиле «не работает голова — работают ноги; или дуй в офис, или сиди записывай» и закурил.

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

— Да. Хорошо, не мешай дяде. Пускай скачивает.

— …

— Ну давай попробуем, сделаем из тебя айтишника. Попробуй перезагрузить компьютер, нажми F8 несколько раз. Выбери безопасный режим с поддержкой командной строки. Нажми Ctrl+Alt+Delete, «Файл», «Выполнить». Молодец. Набери там regedit. Запрещён? Хорошо, набери gpedit.msc

И так далее, смысла рассказывать полностью все действия нет.

— Ну вот, молодец, теперь перезагрузи компьютер. Заработало? Теперь скачай антивирус…

— …

— А теперь попроси дядю нагнуться и дай ему пинка с фразой быстро бежать в офис и не брать с мамы денег за вызов.

Андрей положил трубку, глотнул кофе и дико заржал. «Рукам» понадобилась флешка для фильма, и он использовал рабочую походную флешку, стерев там и загрузчик, и все программы, а диск с утилитами он «ещё прошлой весной посеял». В итоге, пока «руки» увлечённо качал и записывал на своём недобуке, сидя у клиента, новую флешку, телефон взял поиграть ребёнок лет шести-восьми и радостно сообщил незнакомому дяде, что тоже станет программистом. Вот руками этого ребёнка профи и решил чуть-чуть поуправлять — и, потратив минут 10–15, удалил с компьютера клиента блокировщик, благо тот был кривовато написан и оставил парочку дырок для отключения.

Через сорок минут в офис прибежал «руки» с пунцово-красным лицом, ни «здрасте», ни «до свидания», взял из шкафа резервную походную флешку и диск с XPE и побежал на следующий вызов.

12377

Прекратите, печка пригорает

8 июля 2014, 07:00

На работу привезли новый огромный многофункциональный принтер со множеством функций — страшно умный. Быстро провели обучение и оставили мощное устройство на растерзание пользователям.

Через некоторое время админ на некотором расстоянии наблюдал, как две девочки-блондинки бегали от компьютера к МФУ и всячески издевались над устройством с помощью одного и того же файла-документа, а оно категорически отказывалось печатать так, как им хотелось. То формат бумаги не тот, то двусторонняя печать не в том месте сшита, то буквы серенькие.

И вот запускают они очередную печать, ждут, а из МФУ вылазит страница А3 с огромным текстом на весь лист:

ХВАТИТ МЕНЯ МУЧАТЬ

Конечно же, её запустил админ со своего рабочего места, отменив при этом их задание печати. Но девочки моментально оставили в покое МФУ и даже обходили немного стороной — вдруг совсем обидится и укусит?

12376

Камасутра USB 3.0

7 июля 2014, 07:36

Дело началось ещё в бородатом 2009 году. Тогда только начали появляться в продаже устройства, поддерживающие новоявленный интерфейс USB версии 3.0. Ну, собственно, тогда я купил для своего компьютера, собранного годом ранее, в качестве proof of concept для опробования технологии полный комплект устройств:

  • карту расширения USB 3.0 (субъективно подозрительную), вставляемую в слот PCIe 2.0×1 без дополнительного разъёма для питания от БП компьютера;

  • внешний портативный жёсткий диск на 1 ТБ западной цифровой фирмы без блока питания;

  • и для полного счастья — китайский noname, мать его за ногу, но почему-то понтово-дорогой хаб USB 3.0 с четырьмя портами и блоком питания на 5 В и (внезапно) 2,5 А.

Из-за отсутствия ассортимента пришлось обойтись пока так. Подключил — работает. Больше устройств USB 3.0 у меня пока не было, а купленный жёсткий диск с новым интерфейсом и три флешки старой версии USB 2.0 в хабе уживались без проблем и без сбоев. Что ещё нужно для счастья? По сумме потребления тока получается как раз 2,5 А. Ничего не предвещало беды.

Видимо, в китайском лексиконе (я, пардон, не знаток китайского) фраза «должно работать» носит в основном теоретический, а не практический характер. Проходит год, покупаю новый жестяк фирмы морских ворот. Вынимаю флешки, подключаю диск — хаб отваливается. Что за дела? Перетыкаю хаб — определяется диск. Начинаю копирование файлов — опять отваливается. Какой же упрямец! Беру диск, ставлю на пол возле компьютера, втыкаю в свободный слот на карте расширения. Полундра! Хо-хо-хо! Копирование файлов — полёт отличный. Во избежание геморроя покупаю более крутой хаб с блоком питания на 4 А по току и (внезапно) подозрительно дешёвый, как и все остальные модели. Хм, ладно. Подключаю оба диска — полёт нормальный. Любая работа — всё без сбоев.

Покупаю новый внешний жестяк той же фирмы, что и первый, но объёмом на 3 ТБ. Подключаю — определяется, но через несколько секунд отваливается. Что за дела? Перетыкаю хаб — не помогает. Лезу в диспетчер устройств — оказывается, не отвечает карта расширения. Ребут — история повторяется. Что за дела? Перетыкаю диск из хаба в контроллер. Полёт нормальный. Угу, иду в магазин за контроллером с дополнительным питанием от БП компьютера и шиной PCIe 2.0×4 — по линии на порт. Подрубаю к контроллеру хаб, к хабу — все диски на месте.

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

12375

Человек и пароход (простите, кот и арифмометр)

7 июля 2014, 07:24

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

Так рядом с арифмометром «Феликс» оказался красочный картридж с игрой об одноимённом коте.

12374

Кафе «Припой»

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

Скажите, нужна ли профессия парикмахера? На этот вопрос одним словом «да» или «нет» не ответишь. Профессия мужского парикмахера не нужна. Мужскую стрижку легко выполнить и в домашних условиях — бесплатно, с комфортом, качественно, быстро и без очередей. А женского — нужна. С женской стрижкой домашний парикмахер-любитель не справится. Результат его вмешательства известен заранее: изуродует. Лучше заплатить квалифицированному специалисту.

В сфере ремонта портативной техники аналогом мужского парикмахера является ремонтник телефонов, а женского — ремонтник фотоаппаратов. С ремонтом телефона в 90% случаев справится любой умеющий ровно держать отвёртку, а в 95% — умеющий ровно держать ещё и паяльник. Оставшиеся 5% приходятся либо на сложные случаи, когда требуется фен, либо на трудноразбираемые и труднособираемые модели. Вот в этих 5% случаев ремонтник телефонов ест свой хлеб не зря. Признаю.

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

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

А телефонным ремонтникам куда податься? Тем, которые на это способны — повысить свою квалификацию, научиться справляться с фотоаппаратами. Мы в вас верим! Остальным — перенять концепцию антикафе, где сотрудники получают столько же, сколько сотрудники кафе, между прочим. Антимастерская может сочетать в одном помещении магазин запчастей и столы с инструментом и оборудованием. Людей, желающих платить разумные суммы за время аренды этих столов для самостоятельного ремонта, найдётся не так уж мало.

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

12373

Мой любимый размер

7 июля 2014, 07:00

Машину с 20-дюймовым монитором вы называете «нормальной рабочей»? Да это ж «феррари» на столе!

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

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

А планшет у него никогда не бывает заляпанным.

12372

Наступая на свежие грабли

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

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

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

Мне могут возразить про новые решения взамен устаревших — возможно, так, но помните: «устаревшие» писали, возможно, ещё для процессора 80286, 25 МГц, 512 КБ RAM, экономя каждый такт и байт, а вы щедро разбрасываетесь гигабайтами и гигагерцами. Итог предсказуем: огромный неповоротливый монстр из кривых и сырых библиотек классов, худо-бедно ворочающийся на суперновой девелоперской тачке, но виснущий у пользователей.

Слово RFC вообще многие видят впервые. Некоторые, правда, что-то слышали про ITIL: так вот, те RFC — это другие RFC. Правильно, зачем нам читать унылый формальный документ на английском, когда можно на форуме поискать тему «как работает сервер ХХХХХ?» Ну, несколько ключевых команд не реализовали, ну, некоторые стандартные «расширили», ну, потом пользователи плюются — так это потому, что пусть нашу программу используют, а не какую-то там!

Общего представления об интернет-протоколах они могут вообще не иметь: считают, что HTTP отличается от SSH только номером порта, например. Не знают, что доменное имя www.site.ru совсем не обязательно означает веб-сайт на сервере site.ru и совсем не обязательно на российском.

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

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

Вот если бы это ещё наша система образования поняла…