понедельник, 28 декабря 2009 г.

Фича или баг

У небезызвестного продукта 1С есть определенный набор фич (или багов). Например, оказывается, что если ты хочешь в СКД (речь о версии 8.2) выбрать конечный остаток по регистру накопления, то обязательно нужно выбирать и начальный. Так как, если в пределах группировки по периоду (по месяцу и т.д.) не было оборотов, то не выбирая начальный остаток, получишь конечный остаток равный нулю. Хотя, на самом деле он не равен нулю. Зато, если все-таки выбрать начальный остаток!.. Чудны дела твои, Господи...

пятница, 25 декабря 2009 г.

i, j, n, m, f...

xxx: Переменная "i"
xxx: 26 лет на рынке счётчиков!

(c) бор
Shumka: В какую цену обойдется команда .NET разработчиков?
SЁM: Aренда, лизинг, рабство?
(с) бор

четверг, 24 декабря 2009 г.

Развлечемся с Эйфелевой башней?

- Что такое: большое, как Эйфелева башня, а не весит ни грамма?
- Тень от Эйфелевой башни.
(шуточный вопрос)


Когда я попался на эту старую штуку я подумал: "Черт, возьми! Неужели тень от башни действительно ничего не весит?"
Формально, оно, конечно так. Невозможно взвесить тень. Однако, если бы мы "положили" тень на сверхточные весы, что бы мы получили в итоге? Качнулась бы стрелка весов? Возможно.

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

Максвелл вычислил, а Лебедев подтвердил, что на земле давление солнечного света равно всего лишь 4,7*10-6 Н/м2, но эта величина справедлива для света падающего перпендикулярно на идеально отражающую поверхность.

Если же солнце находится на высоте α (от 0° - у горизонта до 90° - в зените), то силу действующую в направлении нормали (собственно силу давления на весы) мы легко вычислим по формуле: Fn=F*sin(α)

Теперь для конкретики нам придется определиться с положением солнца. Поэтому, давайте решим для себя, что мы "взвешиваем" тень от Эйфелевой башни 01.07.2010 в 12:00 по местному времени.

Итак, для этого времени (и места) легко узнать положение солнца над горизонтом при помощи Excel-калькулятора (на самом деле можно было воспользоваться online-калькулятором, но он не учитывает переход на летнее время, поэтому для него вы должны будете сделать корректировку времени на час назад).

Введя координаты (Википедия дает нам следующие данные: 48°51'29''с.ш. / 2°17'40''в.д. или в дробных градусах 48.858056°с.ш. / 2.294444°в.д.) и время мы получим:

Sun's Azimuth
-51,59930886°
-51°35'58''
True (Celestial) Altitude of sun
55,73861046°
55°44'19''
Apparent (Refracted) Altitude of sun
55,75011692°
55°45'00''

Где Sun's Azimuth это направление на солнце (величина показывает угол отклонения от направления на юг и, так как она отрицательная, то это отклонение в восточную сторону, т.е. если в это время стать лицом на север, то солнце будет светить в попу, приятно обогревая правое ухо).
А Altitude of sun это как раз и есть высота солнца над горизонтом. Причем True (Celestial) Altitude - действительная, а Apparent (Refracted) Altitude кажущаяся высота, которая отличается от действительной за счет того, что лучи света немного преломляются при входе в атмосферу. Несмотря на то, что разница небольшая, лучше будет взять кажущуюся высоту.

Итак, угол известен: 55,75011692°

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

Очистив сцену от ненужных декораций я получил вполне приличный результат:



Дальше, спозиционируем башню относительно сторон света так, как она установлена в реальности:



Теперь добавим параллельный источник света с нужными координатами (высота и азимут) и получим... Получим... Правильно! Тень от башни:



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






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

Итак, несложная программка, считающая черные точки выдала коэффициент sh=0,38579 (естественно, я использовал картинку с большим разрешением, чем выкладываю в web).

Теперь о реальной площади прямоугольника. Согласно размерам башни ширина меньшей стороны прямоугольника будет равна 124,9 м. (ширина основания башни). И, раз уж так получилось, что башня почти "стоит лицом" к солнцу, то для упрощения будем считать что большая сторона прямоугольника равна сумме длин синего и желтого отрезков (там действительно не очень большой угол отклонения от стороны и погрешность будет невелика). Длина желтого отрезка равна половине ширины основания башни, а длина синего вычисляется по формуле: x=H*ctg α
Где H - высота башни, α - высота солнца над горизонтом.
Получаем, что x=221,28 м

Значит, площадь прямоугольника 221,28 * 124,9=27637,87 м2

Теперь применим коэффициент sh и получим, что площадь тени:
27637,87 м2 * 0,38579 = 10662,41 м2

Теперь, когда мы знаем высоту солнца, по формуле Fn=F*sin(α) посчитаем силу действующую на каждый метр:
4,7*10-6 Н/м2 * sin(55,75011692°) = 3,88*10-6 Н/м2

И умножим на площадь тени:
10662,41 * 3,88*10-6 = 41,37*10-3 Н/м2

Что равно силе с которой груз массой 4,22 грамма давит на плоскость.

Так, что шутник из эпиграфа к этому посту сильно ошибался. Тень от башни "весит" минус четыре грамма!

P.S.: Пост писался исключительно ради развлечения, так что в нем, естественно, могут быть ошибки или неточности. Если вы найдете таковые пишите, буду рад. Кстати, никто не знает лучшего метода вычисления площади тени башни?

среда, 23 декабря 2009 г.

Открытый семинар по тестированию

Тестирование это очень интересная тема. В январе будет проходить небольшой открытый семинар посвященный теме тестирования ПО, на который я рассчитываю попасть.

вторник, 22 декабря 2009 г.

Что такое "технология COM"

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

P.S.: Однако, нужно признать, что у меня есть трудности с пониманием того, что такое "фабрика класса" в COM. Нужно будет обязательно вернуться к этим статьям.

воскресенье, 20 декабря 2009 г.

ПО для вычисления количества FP

Нашел интересную программку на тему: http://www.nh-software.com/#go3

Собственно, когда я решил, что неплохо было бы написать софтинку для вычисления FP, именно так я ее себе и представлял. Мы с автором софтины размышляли очень похоже. И внешнее представление данных деревом и формат хранения xml...

Кажется, стоит сделать локализацию.

Еще о функциональных точках

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

К тому же вот еще одна несложная статья о сабже: http://itblogs.ru/blogs/tin/archive/2008/06/24/29889.aspx

пятница, 18 декабря 2009 г.

Предположение о расчете эффективности

Возможно, существует ПО рассчитывающее эффективность (сложность) методом функциональных точек. А, что? По-идее ничего сложного: списки точек и транзакций и некоторые механизмы по дополнительным проверкам, например, проверка участвуют ли добавленные хранилища данных (ILF, EIF) в транзакциях (EI, EO, EQ). Таблицы оценки и коэфициенты фиксированы в спецификации. Надо бы пожужлить.

Функциональные точки (указатели) - 2

Вот еще одна хорошая и простая статья с примерами о функциональных точках:
http://www.citforum.ru/SE/project/arkhipenkov_lectures/12.shtml

Кстати, заметьте, что это CIT-Forum. Ностальгическую слезу вышибает от воспоминаний о первых выкуренных манов.

четверг, 17 декабря 2009 г.

Новые технологии своими руками

Хотите придумать новую технологию? Нечто фундаментальное и полезное? Ваши амбиции говорят вам, что мировая слава уже ждет вас?

Но нет хороших идей? Не беда! Придумайте для начала название!

С чего начать?
1. Сядьте поудобнее, расслабьтесь.
2. Опустите руки на клавиатуру, включите Caps Lock и зажмурив глаза "пройдитесь" по клавишам.
3. Слегка отредактируйте полученное, уберите знаки препинания и всякий мусор.
4. Добавьте смысла!

Вот, что получилось у меня:
Реализация VNKD под ARE;
Настройка BDJ модуля BFNL;
Или даже:
Стандарты ASRLNK и BWLE от группы UIB-LH;

Не бойтесь импровизировать, проявите фантазию. Больше экспрессии, почувствуйте себя творцом, а не жалким исполнителем.
Поверьте, это ничем не хуже FPCPM/IFPUG или на худой конец MSDN. =)

Как оценить эффективность? FPCPM - отвечает IFPUG!

Как может показаться сначала, набор символов в заголовке сообщения (FPCPM/IFPUG) это, вовсе не кошкины прогулки по клавиатуре. Это серьезный ман (Function Point Counting Practices Manual) созданый не менее серьезной группой людей (International Function Point Users Group), который любому жаждущему оценки эффективности поможет таковую заиметь.

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

Вот вам отправная точка: http://dspace.nbuv.gov.ua:8080/dspace/bitstream/handle/123456789/1541/36-Sidorov.pdf

Для жаждущих кровавых подробностей, как обычно есть жужл и различные форумы.
ХХХ: говорят, что администратор оракл, получивший все сертификаты и сдавший все экзамены, может sql-запросом убить человека, зная только его IP

bor

среда, 16 декабря 2009 г.

Фильм Office Space

И посмотрите, наконец, Office Space Майка Джаджа.
Особенно те, кто работают в больших компаниях.

Кто такие программисты

Что более важно для программиста: в совершенстве владеть каким-либо языком программирования, знать все его тонкости и эффективно использовать инструменты, или не знать ни одного языка кроме простейшего алгоритмического и уметь решать задачи при помощи него?
Что вообще должен знать и уметь программист, чтобы называть себя таковым?
Кто они вообще, эти программисты?
Джоел Спольски считает, что он должен быть толковым и целеустремленным.

Нельзя не согласиться.

понедельник, 14 декабря 2009 г.

Проблемы кодировки в разных версиях MySQL

Достаточно интересная статья о кодировках в MySQL.

http://www.codenet.ru/db/mysql/mysql-charset/

Всем привет!

Чмаке всем, кто в этом чЯте!