avva: (Default)
[personal profile] avva
1) Почитайте, как в Microsoft OLE устроена работа с датами, особенно датами до 1899-го года. Только заранее присядьте и отодвиньте от себя все легко бьющиеся предметы.

См. по этому поводу также у Айфыра.

2) Посмотрите на дерево XML-стандартов; если вам и после этого не станет плохо, у вас воистину железные нервы.

по поводу XML

Date: 2003-09-17 10:01 am (UTC)
From: [identity profile] meshko.livejournal.com
Знакомый специалист по безопсности объясняет мне, что стандарт PKI никуда не годится.

Я: So who came up with PKI?
S: Europeans
Я: Ah, damn europeans!
S: It's ok. We fought back. We invented XML.

Re: по поводу XML

Date: 2003-09-17 10:04 am (UTC)
From: [identity profile] avva.livejournal.com
Ха-ха ;)

Если уж говорить об издевательствах над XML, но мне очень понравилась эта старая шутка о новом формате RSS.

Date: 2003-09-17 10:10 am (UTC)
From: [identity profile] rydel23.livejournal.com
"сыбота 30 сьнежня 1899" - до боли знакомая строчка. Из-за бага всё время выскакивала на одном сайте...

Date: 2003-09-17 10:56 am (UTC)
From: [identity profile] dimrub.livejournal.com
Только заранее присядьте и отодвиньте от себя все легко бьющиеся предметы.

Да, мне приходилось сталкиваться с этим печальным фактом.

2) Посмотрите на дерево XML-стандартов; если вам и после этого не станет плохо, у вас воистину железные нервы.

Я, в общем-то, представлял картину, и многие из этих стандартов знаю. Но таки да, стало немного плохо.

Date: 2003-09-17 11:04 am (UTC)
From: [identity profile] arbat.livejournal.com
Я как-то пользовался библиотекой, написанной Джоном Лакосом (http://www.bookpool.com/.x/qwtow2amkr/ss/1?qs=lakos). Он человек дотошный и решил всенепременнейше в классе Date учесть тот далекий сентябрь, когда Юлианский календарь заменили на Грегорианский. Половина функций класса медленно, но аккуратно проверяла это дело. При этом, с одной стороны, для финансовых вычислений (а его класс только там и использовался) это совсем неважно - мы никогда так далеко назад не ходим. С другой стороны - мы теряем скорсоть, которая таки - важна. И с третьей - переход был в разных странах в разное время, и, уж, если бы мы полезли в историю, нам это было бы важно!

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

Date: 2003-09-17 12:56 pm (UTC)
From: [identity profile] kbeloz.livejournal.com
Не оппонирую, так, замечание к слову.

Видели, наверное, как в Солярисе (именно в нем - про свободные *nix'ы просто не в курсе, а в несвободных не видел) сделана установка переменнной TIMEZONE?
Длинный-длинный текстовый файл, где описано, как менялись часовые пояса в разных-разных странах мира за те времена, пока те люди, которым стоит thanks в комментариях, нашли и выяснили историю этих часовых поясов.

Проще говоря - сколько раз считывается календарь при работе финансовой программы? Сколько нужно времени, чтобы считать список перемены дат? Возможно, проблема в том, чтобы составить такой список, или я неправ?

PS. Для понимания. Я не программист. Я бывший IT-консультант в большой пятерке, а ныне начальник отдела, как это у на называется, "информационных систем", в серьезной нефтяной компании. Я понять хочу.

Date: 2003-09-17 02:39 pm (UTC)
From: [identity profile] tejblum.livejournal.com
Да, во FreeBSD используется то же, или что-то очень похожее (пример (http://www.freebsd.org/cgi/cvsweb.cgi/src/share/zoneinfo/europe?rev=1.1.2.18&content-type=text/x-cvsweb-markup)).

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

Date: 2003-09-17 07:20 pm (UTC)
From: [identity profile] arbat.livejournal.com

Ну, тут есть такая проблема - если дату хранить в виде "день/месяц/год", то во-первых, надо указывать - по какому календарю, что делает ее еще крупнее, во вторых, во время любых вычислений "сколько дней между датой 1 и датой 2" - надо долго мучиться, с учетом обоих календарей. Можно хранить номер дня, считая от какого-то "начала", скажем - с 1 января 1970 года по Григорианскому календарю. Тогда, однако, надо переводить в "день/несяц/год" для печати, или, скажем, когда (частый случай в финансах) нужен конкретный день, к примеру - платить 15-го каждого месяца. Собственно, поскольку финансовые программы обычно за пределы 50 лет в прошлое не лазают, то можно принять, что календарь всегда - современный, Григорианский.

На самом деле с вычислением дат есть еще доплнительные прибамбасы, о которых Вы, конечно, знаете - скажем, конвенции. Их особенномного в бондах: 30/360, 30/360Е, Actual/365 и так далее - тут, даже, чтобы подсчитать количество дней между двумя датами надо переводить в "день/месяц/год". Кроме того, надо учитывать иногда - где обычный день, где выходной. Часто важно не в одной стране, а в нескольких. И хотелось бы это делать эффективно.

У астрономов - совсем другие заморочки. Они вообще день отсчитывают - с полудня, чтобы эксперимент одной ночи не попал в два разных дня :-)

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

Словом, вот. А Лакос - он попытался подбавить универсальности без смысла. Ну и никакой ценности не внес, программу замедлил, да еще и сделал неверно. Это, по-моему, самая большая проблема с нашим ремеслом - стремление к унивесальности. Все говорят о "компонентах", "code reuse", "seamless integration" - а понимает мало кто. Скажем, часто на интервью задают такой вопрос - должен ли класс "Пингвин" наследовать классу "Птица"? С одной стороны, вроде, пингвин - это птица. С другой, у птицы есть метод "летать", а у Пингвина что? Пустая заглушка? А беда тут простая - проблема оттого, что пингвин - это птица только с точки зрения биологической классификации. Не функциональной. А нам важно - в нашей программе, для нашей задачи, с точки зрения того, как мы его используем - птица он или нет? Может, мы пишем программу подготовки к полетам? А может - программу разделки и расфасофки мяса? Для них нужно разных пингвинов писать :-)

Date: 2003-09-18 04:04 am (UTC)
nine_k: A stream of colors expanding from brain (Default)
From: [personal profile] nine_k
Угу, разные пингвины.
Это и вызвало к жизни aspect-oriented programming %-)

А вопрос про наследование пингвина -- хороший; он должен отлично выявлять стиль мышления.

Date: 2003-09-17 11:15 am (UTC)
From: [identity profile] ex-bulatych796.livejournal.com
А какие проблемы с древом спецификаций? XML - язык общего назначения, спецификаций на его основе может быть столько, сколько областей приложения. Не обязательно их все знать.

Date: 2003-09-17 12:12 pm (UTC)
From: [identity profile] ex-ilyavinar899.livejournal.com
Безумие. Чем плох NT-шный формат - число 100наносекундных интервалов с полночи 1 января 1600 года (64 бита)?

Date: 2003-09-17 12:24 pm (UTC)
From: [identity profile] ex-ilyavinar899.livejournal.com
А, вспомнил - потому, что 64разрядное целое не вписывается в VARIANT.

Боже, какое убожество этот COM/ATL! Вспоминаю - вздрагиваю.

Date: 2003-09-17 12:25 pm (UTC)
From: [identity profile] ex-ilyavinar899.livejournal.com
Или 1601 - не припомню уже. Много воды утекло.

Date: 2003-09-17 03:16 pm (UTC)
From: [identity profile] gdy.livejournal.com
Необходимый набор стандартов по версии Дона Бокса: XML eclipses COM (http://www.gotdotnet.com/team/dbox/default.aspx?key=2003-06-22T07:59:29Z)

Date: 2003-09-18 01:54 am (UTC)
From: [identity profile] haiut.livejournal.com
прочитал про обработку даты в Microsoft OLE..
cheeeesus, как же все запущено :)
на большее нет ни сил, ни слов :)

Date: 2003-09-18 05:34 am (UTC)
From: [identity profile] alexott.livejournal.com
OLE вообще очень странная вещь

Date: 2003-09-21 09:22 am (UTC)
From: [identity profile] cmm.livejournal.com
эк ты ухитрился в одном посте упомянуть сразу две любимые мозоли расчудесного товарища Эрика Наггума:

это про время, фундаментально: http://heim.ifi.uio.no/~enag/lugm-time.html

это про иксемель:
http://groups.google.com/groups?selm=%3C3250033069468718%40naggum.no%3E

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
2829 30 31   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 2nd, 2026 12:29 am
Powered by Dreamwidth Studios