Читать «Bash IT Happens Истории ## 8101 – 8200» онлайн - страница 19

Bash.org.ru IT

#8159: Браузерка «Весёлый сисадмин»

16:45 29.12.2011, IT happens

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

Первым делом зарезал аську — заменил на Openfire и Самбу. Далее через Squid перенаправил DNS-запросы на фильтрующий сервис. Поставил NeTAMS для учёта трафика. К Самбе прикрутил SWAV, к Squid — SARG. Всё это крутилось на FreeBSD, управлялось и мониторилось через веб-интерфейс. До кучи панель управления антивирусом тоже сделана через веб.

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

#8160: Суржик++

16:45 29.12.2011, IT happens

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

Путём расстановки комментариев нашёл злосчастную строчку. Задумался: почему тут есть ошибка, а у меня всё окей? Посидев на форуме, выяснил, что у них стоит Visual C.

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

#8161: Под шелест выпадающих ячеек

16:45 29.12.2011, IT happens

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

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

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