<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:dumalkin</id>
  <title>Пыхтелки Думалкина</title>
  <subtitle>Мудрые мысли оптом и в розницу</subtitle>
  <author>
    <name>Саша</name>
  </author>
  <link rel="alternate" type="text/html" href="http://dumalkin.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://dumalkin.livejournal.com/data/atom"/>
  <updated>2038-01-19T03:14:07Z</updated>
  <lj:journal userid="7107815" username="dumalkin" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://dumalkin.livejournal.com/data/atom" title="Пыхтелки Думалкина"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:dumalkin:4139</id>
    <link rel="alternate" type="text/html" href="http://dumalkin.livejournal.com/4139.html"/>
    <link rel="self" type="text/xml" href="http://dumalkin.livejournal.com/data/atom/?itemid=4139"/>
    <title>Из жизни зоопарка</title>
    <published>2038-01-19T03:14:07Z</published>
    <updated>2038-01-19T03:14:07Z</updated>
    <category term="work"/>
    <content type="html">1. Всем программистам было строго настрого &amp;quot;попрошено&amp;quot; - никаких геометрических и географических вычислений. Всё что нужно будет написано одним &amp;quot;выделенным&amp;quot; человеком, который знает что такое синус и Меркатор, и почему в UTM вопрос &amp;quot;где север&amp;quot; имеет нетривиальный ответ. Но нет, нашлись Ломоносовы, блин ... Сами все изобретем и напишем.&lt;br /&gt;Вопрос залу - если находящийся на высоте 10 км самолет будет лететь строго по прямой, на какой высоте он окажется пролетев по этой прямой 200 км ? Подсказка: не на высоте 10 км ...&lt;br /&gt;Вторая подсказка: вообще-то зависит от места и направления куда он летит (если с точностью до метра).&lt;br /&gt;Хорошо что QA это поймало до демонстрации, а не после.&lt;br /&gt;&lt;br /&gt;2. Есть симулятор &amp;quot;внешнего мира&amp;quot; для нашего проекта. Программа в него в какой-то момент передает команду &amp;quot;поехали&amp;quot;. Иногда - много раз, и разные штуки начинают &amp;quot;ехать&amp;quot;. В разное время и в разном направлении. И что-то мы смотрим - симулятор наш барахлит когда слишком много команд таких получает. Ну, оптимизацией мы еще не занимались, математика там сложная, все может быть. Сегодня смотрим - один доморощенный гений, навязанный нам заказчиком, писал как раз модуль получающий команду &amp;quot;поехали&amp;quot;. Только вот команда эта приходит с указанием &amp;quot;езжай через Х секунд&amp;quot;. Что он делает ?&amp;nbsp;Правильно, Sleep. И тред - тю тю. Как раз на эти Х секунд. 10 команд - 10 тредов уложено спать. А&amp;nbsp;их мало, на всех не напасешься ... Что характерно - мне никогда, ни при каких условиях, в голову бы не пришло делать Sleep в production code. А&amp;nbsp;ему пришло ...&lt;br /&gt;&lt;br /&gt;3. Вы latitude с longitude местами менять не пробовали&amp;nbsp;? Шикарный эффект иногда получается.&lt;br /&gt;Модулю параметры дают: lat, long а он их читает long, lat.&lt;br /&gt;На карте потом такая хренотень, что просто ...&lt;br /&gt;&lt;br /&gt;4. Попробуйте в ESRI нарисовать эллипс с осями 100 на 200 метров, если ваш геоматериал в GEO.&lt;br /&gt;Найдете как - скажите. (Наш вопрос их поддержке в Штатах уже с месяц ждет ответа, а местный филиал не понял почему идея задавать оси в градусах нам не подходит)&lt;br /&gt;&lt;br /&gt;5. Мальчику дали писать численное интегрирование - пересечение эллипса с полигоном с учетом вероятности (эллипс - это двумерное гауссово распределение). Ну, он поделил на клеточки, все аккуратно посчитал. Размер клеточки взял 10 метров - чтобы поточнее получилось. Что сделал первый юзер (QA) на первом запуске : определил полигон - прямоугольник, размером во все государство Израиль. А&amp;nbsp;для каждой клеточки вычисляется функция вероятности (е в степени и т.д.), а клеточек получилось дофига.&lt;br /&gt;Зато очень точно. Правда система это должна считать сотни раз в секунду, но это пофиг. Главное - точность :)&lt;br /&gt;&lt;br /&gt;6. Две программы должны устанавливать свой файл шрифтов. Один и тот же. В&amp;nbsp;итоге если запустить их одновременно, то первая работает, а вторая падает, потому что пытается заменить файл шрифтов занятый первой. Совет назвать файлы по разному был с презрением отвергнут, ищется &amp;quot;правильное&amp;quot; решение. Уже с неделю. Всю эту неделю 20 остальных программистов делают восьмерки в воздухе запуская и выходя из этих программ по очереди.&lt;br /&gt;&lt;br /&gt;7. Признак хорошего QA:&amp;nbsp; все программисты запускали сценарий с движением вправо-вниз. QA первым делом проверил движение по осям. Так вот - как и следовало ожидать, наша программа движение с запада на восток (слева на право) не поддерживает. Ибо нефиг. На западе хорошо, нечего оттуда рыпаться, поставили - сиди.&lt;br /&gt;&lt;br /&gt;8. Получили в наследство библиотеку посылки, парсинга и т.д. для сообщений. Типа получаешь буфер с сети, пихаешь в нее, она выдает аккуратный .НЕТ объект. ну и наоборот - даешь ей объект, она строит буфер.&lt;br /&gt;Сейчас запустили один сценарий где посылаются десятки сообщений в секунду (при максимуме в тысячи) - посылка каждого сообщения занимает 17 мс. При форматировании каждого бита (не байта, бита) происходят десятки виртуальных вызовов, самая часто используемая функция делает деление одного целого числа на другое. &lt;br /&gt;Через 2 часа чертыханий (не моих), и убирания вопиющих фрагментов время уменьшилось до 1.7 мс.&lt;br /&gt;Цель - считанные микросекунды. Выделен месяц для разбора этих Авгиевых конюшен. Предчувствия нехорошие ...</content>
  </entry>
</feed>
