Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2006-07-20

Интернет, локальные городские сети

Ну до чего ж интересно бывает пытаться понять причины тех или иных поступков отдельных личностей!
Я тут проводил, можно сказать, эксперимент. Можно ли фактами и логикой убедить в чем либо людей нагруженных верой. Верой, в смысле, человек верит во что то.
Убедился, что нет. В любом случае, не быстро.
Это я про свои попытки обьяснить как персоналу, так и пользователям своей районной локалки, что оплаченная услуга должна быть получена в полном обьеме, либо недостача компенсирована.
В общем и целом - бесполезняк. У персонала полное отсутствие менеджмента, которому можно пожаловаться на непрофессионализм, хамство и нарушение правил игры. У клиентов - детско-восторженное (в основном, такие мальчики-девочки у нас) отношение к непонятным технологиям и людям, которые в этом типа секут. Да и деньги мальчики/девочки не считают, за них папа с мамой платят.

Провайдер - пираты (считают своим преимуществом перед остальными наличие 10 терабайтного массива с пираткой), даже банковского счета нет. Проводят работы на серверном оборудовании без планирования и предупреждения. Да ладно, без смеха на сайт визитку смотреть нельзя, ладно сами безграмотные, так хоть вордовый спелчекер запустите... нет. Своего ума нет, а менеджер, а был ли менеджер?
Сеть на виндовом домене. Выход и инет через смарт-софтовский "трафик инспектор". Видимо никогда и мысли не было достичь приличных масштабов сети. Пионеры (которые в красных галстуках) и фидошники.
Когда обьясняешь, что у них проблемы с сетью, обижаются и говорят, что у них (высоких профессионалов) все в порядке, это тебе, ламеру по определению надо поменять/переставить все подряд, начиная с параметров сетевого соединения. А если не можешь, вызывай техника. За деньги.
А техники, да. Техники. Не знаю как все (и сколько их) но есть особый. Доказать я ничего не могу, но подозрение мощное. После перепалки на форуме покоцал мне кабель. Типа "получи фашист гранату".
А как на один кабель два подключения сажают... песня. Режем оплетку, половиним витую пару, одну половину - одному соседу, вторую - другому. Понятно, в шахте места мало, каждому кабель не прокинешь с чердака. Но качество исполнения! Ух. Ребята никогда видимо не видели стандарты на кабельные соединения.

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

Короче, к нам в район пришла Корбина. Теперь у меня будет 2 канала. Корбинский - основной (наверно безлимитный тариф попробую, не определился пока), а пионерский - как резерв: за 150 р. в месяц локальная сеть с 10 терабайтами пиратки и 1.5 р. за мегабайт интернета.
Корбинская засада


А пионеры сами сдохнут. Или их Корбина купит. Что жалко. Два канала лучше чем один. А стрим когда еще мне доступен будет.

тестирование веб-приложений

С тестированием веб-приложений все плохо. Потому как при работе продвинутого ВП задействуется множество компонент. И даже если все их протестировать по отдельности, нет гарантии, что все в сборе заработает.
Посмотрим: браузер - сколько вы знаете версий браузеров? Я легко штук 5 перечислю даже не роясь в памяти. Браузер влияет на что? На работу яваскриптов, на отображение страницы (рендеринг), на кеширование. Дальше - вебсервер. Масса возможностей отконфигурировать, в том числе и неправильно. Ограничения доступа, заголовки, средства автоматической обработки запросов - ответов...
Сервер приложений - ну обычно ПХП. Тестировать можно и нужно. Да и проблем особых нет, если отслеживать версию движка. База данных... Вообще целый пласт проблем, но достаточно легко формализуется. А сколько я еще не упомянул....

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

А помочь ему в этом могут такие вещи, на мой взгляд реально помогающие:

субьектное программирование

Концепции писания программ.
Субьектное программирование.

Похоже на старое доброе агентское программирование - есть субьекты, почти живые, со своим поведением, рекциями на раздражители, есть состояния системы и обьектов, параллельно выполняется основной цикл каждого субьекта-агента.
Для того, чтобы представить себе результат, вспомните поведение ботов в играх. Типичные субьекты-агенты.
Поведение субьекта определяется набором состояний его самого, обьектов с которыми он взаимодействует, состоянием системы в целом. Понятно, должна быть некая логика реагирования на изменения состояний, тут приходим к теории конечных автоматов (интересно, почему конечных, можно и бесконечных :))

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


а есть еще Аспектно-ориентированное программирование
это я пока не понял.

просто замечательная история

http://www.anekdot.ru/id.html?204371

сразу цитата:

В общем, мораль (для меня лично) сей абсолютно реальной (клянусь!!!)
истории - легко дается обычно ненужное. Часто именно то, что нужно
другому.

Два года тому назад мой сын готовился поступать в медицинский.
И, что важно - ходил он весь учебный год на платные курсы. Слушатели
которых традиционно, который уже год подряд, подают документы в приемную
комиссию в один и тот же день, в первую субботу приемной эпопеи - чтобы,
значит, потом легче было отследить процент успешных попыток (кстати,
высокий очень процент! На первом экзамене, когда от остальных групп
абитуриентов осталось, бац! около половины - в группах курсантов были
только единичные завалы). Но это детали, главное то, что все знали -
надо подать документы строго в такой-то день. Иначе кошмар и ужас.
Дите наведалось к дверям приемной комиссии и вечером в четверг
предъявило мне мятый листочек со списком документов, которые должен
иметь абитуриент. Читаю, читаю, и вдруг ОЙ! приписное свидетельство!
Что-то я не помню, чтобы оно у сына было... "Сын, а у тебя ведь есть
приписное?" "? чего???" Далее выясняется, что школьный учитель военки
водил в военкомат только тех призывников, которые жили в том же районе,
в котором располагалась наша гимназия. А остальные должны были сами,
значит. Ну, и естественно, как выяснилось (когда я обзвонила мамаш
одноклассников своего оболтуса), примерно половина "забили на этот
вопрос".
Далее опускаю подробности (суета, звонки, поиски знакомых), потому что в
нашем городе пройти военкоматскую комиссию в течение дня нереально.
Короче, нашлась среди моих знакомых жена военкома другого района города.
И ему была передана моя просьба ускорить процесс медкомиссии.
В пятницу (а назавтра, напоминаю - день подачи документов!!!) оболтус
был мною выгружен у дверей военкомата. Через несколько часов звонок от
него: " Мам, тут у меня проблемы".
Тут опускаю подробности (уход с работы: а я работаю в больнице, личный
рекорд скоростной езды по городу в пятницу после обеда, когда все
горожане начинают отъезд на дачу).
В военкомате нахожу печального сына. "Иди к старшему врачу. Они сказали,
что я худой, глухой и у меня плоскостопие и порок сердца".
Иду. Сидит в кабинете дама приятной наружности. Говорю:" Коллега, я
такая-то, врач такой-то специальности, что там с моим сыном таким-то
таким-то?"
Оживляется. "А! Да! Вот вам направления: к эндокринологу, на
фиброгастроскопию, на аудиометрию, к сурдологу, рентген стопы,
травматологу, УЗИ сердца и кардиологу. Ребенок болен, будем
обследовать!"
Я обалдеваю, т. к. уж я-то, пардон, знаю, что за все время своей жизни
он болел, и то не каждый год, только ОРЗ. Ну и ветрянкой в 5 лет.
Говорю осторожно: "Вы знаете, мне кажется, мой сын совершенно здоров. Я
Вас умоляю, приписное выпишите, пожалуйста! Я потом, потом как-нибудь
его обследую у себя в плановом порядке".
Теперь обалдевает уже приятная дама. Прямо охуевает, по-русски говоря.
"Коллега!!! Вы что? Не понимаете? Я Вам говорю - у Вашего сына дефицит
массы тела, тугоухость, плоскостопие и шум в сердце!!!"
Я опять: "Да Бог с Вами, коллега! Он просто стройный мальчик. И слышит
он прекрасно, и ноги нормальные. И порока нет никакого: пролапс
митрального клапана - это вариант нормы! Я очень Вас прошу! Выпишите нам
приписное! Напишите, что он годен, и мы уйдем"
Весь этот цикл повторяется еще дважды с вариациями, и наконец в мою душу
что-то закрадывается такое, понимаете... Ну о чем может просить один
военком другого насчет призывника? Приписное что ли выписать побыстрее?

В ее душу тоже что-то закрадывается, т. к. она делает паузу и говорит:
"Ну вот что. Побудьте пока в коридоре".
Выхожу. В коридоре сидит мой унылый сын и рядом с ним еще один такой же
призывничок со своей мамашей. Та мне: "Что? Тоже пишут, что годен?" Я
молчу и стыжусь.
Открывается дверь, медсестра зычно кричит: "Мама призывника такого-то!"
Захожу. Далее смех, улыбки, выдача приписного, просьба пошуровать среди
знакомых хирургов на предмет работы в их военкомате, обмен телефонами,
полный хэппи-энд, короче.
В общем, мораль (для меня лично) сей абсолютно реальной (клянусь!!!)
истории - легко дается обычно ненужное. Часто именно то, что нужно
другому.
Ну и пост, значит, скриптум: оболтус в медицинский поступил. Сейчас на

2-м курсе.

управление разработкой. начальнику программистов

Своими силами: управление процессом разработки ПО небольшой командой специалистов

очень полезная статья. Для начинающего руководителя командой программистов.
В статье на пальцах автор обьясняет - что нужно для продуктивной работы коллектива и обьясняет некоторые принципы управления.
Понятно, статья не охватывает всех аспектов и не может служить учебником или образцом. Но направление мысли дает верное.
Читать начальникам проектов и руководителям программистов. Обязательно.
Потом можете почитать "Как пасти котов".

Антивирусы. Чем успокоится...

С антивирусами ситуация занятная.
Лично мне нужно две функции от антивируса:

  • сканер файлов работающий в командной строке (консоли, для автоматической проверки на серверах);
  • сканер интегрирующийся в оболочку, чтоб по правой кнопке мыши проверять файлы и каталоги.
Понятно, сканер должен проверять архивы, файлы-контейнеры разных форматов (почтовых, в основном).
Некоторым требовательным товарищам нужен еще монитор, чтоб в фоне проверял каждое чтение/запись файла на предмет вирусов.
Ну, и чтоб не воровать, АВ должен быть фри. В идеале - опенсорц.
Это требование вступает в противоречие с качеством защиты - это качество зависит от оперативности пополнения баз сигнатур заразы всякой. А работа эта нудная и бесплатно не делается.

Вот и получается, что на сервере я до сих пор гоняю АВ Касперского третьей версии, в комплект к которому входит сканер для доса. Обновляю базы раз в день, переписыванием с сервера лабораторииКасперского.

А на станциях есть три варианта:
все бесплатные, хорошо работающие. У Антивира персонал даже монитор есть.
Вот где бы еще современный сканер для командной строки найти приличный...

2006-07-16

как оценить требования к ГИС железкам

Наверное многих гисостроителей интересует тема "как подобрать/посчитать" железо под систему? Вот взгляд на тему, по следам переписки по электропочте:

цитата из письма первого:

На самом деле я и сам давно в ГИСовской тематике, вы наверняка натыкались и на мои статьи...но общаясь с очередным заказчиком вдруг заполучил вопрос о возможной связи между некими статистическими параметрами объекта, подлежащего ГИСизации (мера, степень, глубина..) и "железными" параметрами сервера.
Я-то привык это решать по принципу "начните с такого-то минимума, а там посмотрим как пойдет", но настырный клиент не отстает...Не натыкались на какую-то оценку?

Спасибо заранее за любой ответ,


вот цитата из ответа:


Я попросил сказать пару слов по Вашему вопросу одного из коллег, получилось примерно так:

"...да, вопрос туманен.
Что может дать объект гисизации в плане требований к железу?
Убьем хранимых/обрабатываемых/выдаваемых данных? В единицу времени?
Типы данных (растры, вектор, атрибутика)?
Скорость роста объема данных?

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

В общем, грубо, серверные системы можно оценить по объему данных (хранимых, обрабатываемых), пропускной способности систем ввода-вывода, скорости обработки определенного объема данных (вычислительная мощность), надежность (бесперебойность), масштабируемость.

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

Простой ответ такой: безусловно, связь есть между параметрами объекта и требованиями к железу. И наиболее очевидная - масштабы объекта прямо пропорциональны размерам подсистемы хранения".

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

В общем, вот такие мысли, ничего нового...


ну и финальная цитата:


Re: про ГИСовы " железки"

спасибо за пространный ответ, вы утвердили меня в собственном мнении, а это немало :-)
Мне-то, по большому счету, это совсем не нужно, но мы вышли на "поляну" ххх кадастра. а большие "дяди и тети" часто необоснованно умничают, вместо того, чтобы просто слушать мнение экспертов, к коим я отношу нас обоих.
Вот у нас идет сейчас промышленная эксплуатация системы в ххх, одновременно на редактировании вращаются до 4 миллионов графических объектов, десятки пользователей...начали с некой разумной конфигурации, теперь стало видно, что стоит в первую очередь подумать о гигабитной сети, в общем, все в процессе.
А в другом регионе мне с апломбом заявляют: это почему это для неодинаковых муниципальных образований вы предлагаете одинаковые железки? Для чего ж вы, песьи дети, делали обследование? вот и вычислите нам теперь индивидуальные для каждого города мегабайты и гигагерцы...на дурацкий вопрос, конечно, и ответ должен быть дурацкий, но что-то я и зацепиться ни за что не могу...



Напоследок могу привести пример расчета серверных мощностей по известным (собранным статистически на этапе пилота) параметрам:

Данные, принятые к расчету Расчетный Ожидаемый Пиковый
Количество пользователей (чел.) 200 40 200
Максимальное допустимое время ответа (сек.) 30 3 3
Среднестатистический размер ответа на запрос (Мб) 1 1 1
Общий объем данных, обрабатываемых системой (Мб) 5000 5000 5000
Поддержка сессии пользователя в оперативной памяти (Мб) 5 5 5
Средний объем данных обрабатываемых сервером для ответа на запрос (Мб) 500 400 600
Память, используемая операционной системой (Мб) 300 300 300
Память для кеширования информации файловой системы (Мб) 300 300 300
Коэффициент запаса 2 2 2


Расчет объема оперативной памяти на кластер (Мб) 4200 2400 4400
по формуле: (кол.пользователей*памятьНаСессию+обьемОбрабатываемыхДанных+памятьОС+обьемКэша)*запас


Расчет системы ввода-вывода на кластер


Внутрисерверный ввод-вывод (Мб/сек.) 6666,67 10666,67 80000
Ввод-вывод к клиентам (Мб/сек.) 13,33 26,67 133,33
по формулам: пользователи*обьемОбрабатываемыхДанных/времяОтвета*запас
пользователи*размерОтвета/времяОтвета*запас

Данные для расчета вычислительной мощности


Частота процесора (Ггц) 3,5

Запросов 1

Время ответа (сек.) 1

Загрузка процессора (%) 40

Ггц на запрос, чтобы ответить в секунду 1,4

Нагрузка (Ггц) 9,33 18,67 93,33

формула: пользователей/времяОтвета*ГгцНаЗапросДляОтветаВСекунду

2006-07-03

картографические веб серверы

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

Но есть области, куда с гугльмэпсом не пролезть - заказные ГИС. Тут на сцену выходят такие игроки:

Autodesk MapGuide
ESRI ArcIMS
и прочие мэпсерверы, например, здесь:
http://www.osgeo.org/

С ArcIMS я не работал, но по всему, это достаточно тяжелое и весьма мощное решение. Дорогое. Для очень серьезных проектов.
С MapGuide я и сейчас работаю, и решение мне нравицца. Не без недостатоков, конечно, но в паре с Oracle Spatial можно сделать всё, что нужно. И не слишком дорого.
А сейчас есть версия MapGuide опенсорц, на том самом http://www.osgeo.org/
Если смогу пощупать, обязательно сделаю выводы.

А теперь несколько интересных примочек:
RTFM // ИнтернетСохраняем карты Google Maps с помощью GoogleMV
http://www.computerra.ru/gid/rtfm/internet/264911/

В Google Maps обозначили московские улицы и развязки
http://citcity.ru/12354/

Сделать копию карты с гугля

Теперь скачиваем бесплатную утилитку url2bmp (360 Кбайт в архиве), которая, по сути дела занимается тем, что эмулирует веб-браузер, позволяя задавать любой размер виртуального экрана и снимать с него скриншоты в заданный момент времени.

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)