[image]

Новая проблема 2000, блин. Не было печали... :(

 
1 2 3 4 5
EE Татарин #06.10.2006 04:22
+
-
edit
 

Татарин

координатор
★★★★★
Сергей-4030> Вы, извините, съезжаете на почве антиамериканизма. ;)
:) Ну, зачем же? Во всех приличных местах мультикультурность (таймзоны и пр. бр.) учитывают. :)

Сергей-4030> Еще раз - проблема НЕ имплементировать библиотеку поддержки.
Да понял я... Изначально понял. Вы не поняли.
Вопрос следующий: какого фига в ТАКОМ (связанном с расписанием и временем, да еще и большом, "на века") проекте не предусмотрели такой тривиальной вещи?
Где был архитектор?
Когда Вы мне скажете, где он был, я спрошу: почему в схожих местах Германии или Франции архитектор догадывается о таймзонах, а тут - не догадался?

Суть моей шутки (смеяться; "лопата") состояла в том, что с таким подходом в Бразилии имели бы катастрофу-2000 по два раза в год. :)

Сергей-4030> PS Вы точно "на правах эксперта"? ;)
Точно. :) Что касается таймзон - угу, угу. :)

Сергей-4030> Вы можете себе представить, что это - 81 мегабайт только кода? Согласитесь, ваш проект, для которого вы писали, был несколько скромнее. ;)
Могу представить. Да, соглашусь. Где-то на порядок (десятичный, код - С#).
Что это меняет по сути?
   
+
-
edit
 

Mishka

модератор
★★★
foogoo> Программы из франции? Нет, спасибо, мне перла на работе хватает...

Это из серии функционального программирования.
   
US Сергей-4030 #06.10.2006 04:46
+
-
edit
 

Сергей-4030

исключающий третье
★★
Татарин> Вопрос следующий: какого фига в ТАКОМ (связанном с расписанием и временем, да еще и большом, "на века") проекте не предусмотрели такой тривиальной вещи?

Какой тривиальной вещи? Где она тривиальна? Еще раз - вы вообще все операции обертываете, чтобы если что не так - заменить своей реализацией? У вас свой собственный wrapper над файлом, скажем? (У нас, кстати, File "обернут" ;) )
А что делать с решениями третьих фирм? Их тоже обязать пользоваться вашими обертками? А если они про вас никогда не слыхали?

Татарин> Когда Вы мне скажете, где он был, я спрошу: почему в схожих местах Германии или Франции архитектор догадывается о таймзонах, а тут - не догадался?

Потому, что проблема была ясна ДО начала работы. И потому, что проблемы с версиями на навешиваются.

Татарин> Суть моей шутки (смеяться; "лопата") состояла в том, что с таким подходом в Бразилии имели бы катастрофу-2000 по два раза в год. :)

Нет, там бы написали так, чтобы обработать проблему. Здесь проблемы не было и предвидеть ее было нельзя (начали разработку, вернее, портирование на Джаву 4 года назад) - поэтому и решать проблему не стали.

Сергей-4030>> PS Вы точно "на правах эксперта"? ;)
Татарин> Точно. :) Что касается таймзон - угу, угу. :)

Ээээ. ;)

Сергей-4030>> Вы можете себе представить, что это - 81 мегабайт только кода? Согласитесь, ваш проект, для которого вы писали, был несколько скромнее. ;)
Татарин> Могу представить. Да, соглашусь. Где-то на порядок (десятичный, код - С#).
Татарин> Что это меняет по сути?

По сути это меняет очень много. На порядок больший проект - на два-три порядка сложнее, требует много большей организации.
   
+
-
edit
 

Mishka

модератор
★★★
Сергей-4030> Кстати, про быстроту OCaml - факты, пожалуйста, в студию. ;) Прямо так-таки на любых задачах в 2-3 раза? А то знаете, ассемблер в некоторых тестах тоже дает ого-го какое быстродействие. А в приличных проектах - просто сливает языкам высокого уровня.


Да Рома сравнивал на функции Аккермана (не тривиальная рекурсивная функция, которая не может быть развернута в циклы) — они там развернули немного рекурсию и передели параметры через регистры. Поэтому получилось быстрее — понятно и где бить по яйцам — надо параметров 6 передать и он загнется. А, если еще статическую цепочку вложенных процедур организовать (если язык позволяет), то вообще будет попа. :)
   
+
-
edit
 

Mishka

модератор
★★★
Татарин> Да понял я... Изначально понял. Вы не поняли.
Татарин> Вопрос следующий: какого фига в ТАКОМ (связанном с расписанием и временем, да еще и большом, "на века") проекте не предусмотрели такой тривиальной вещи?

А ты предусмотрел, что завтра в России могут отменить это дело? :) А предусмотрел, что по четным годам все будет сдвинуто на день вперед, а по нечетным на день назад? :P

Татарин> Когда Вы мне скажете, где он был, я спрошу: почему в схожих местах Германии или Франции архитектор догадывается о таймзонах, а тут - не догадался?

И где там учитыают? У нас вот купили Норвежскую компанию — с таймзонами полная жопа. Или немецкую — тоже самое.

Татарин> Суть моей шутки (смеяться; "лопата") состояла в том, что с таким подходом в Бразилии имели бы катастрофу-2000 по два раза в год. :)

Ну и? Тебе показать бразильский код, который с нормальными зонами не работает? Я имел с ними дело в прошлом году. Тетечка оказалась достаточно приятной. :)

Татарин> Что это меняет по сути?
Ты учел сдвиг на 30 минут, 15 минут, 45 минут. А то, как раз с немцами и (гы-гы — белоруссами) возился, когда они забывлиЖ
UTC + 12:45, M‡
  • New Zealand
  • o Chatham Islands**
    UTC + 11:30, L*
  • Norfolk Island
  • UTC + 10:30, K*
  • Australia
  • o New South Wales
    + Lord Howe Island** (DST only 0:30)

    UTC + 9:30, I*
  • Australia (ACST—Australian Central Standard Time)
  • o New South Wales
    + Broken Hill**,
    o Northern Territory,
    o South Australia
    UTC + 8:45, H‡
  • Australia
  • o Western Australia
    + Caiguna–Eucla–Border Village (far southeastern part of state)
    UTC + 6:30, F*
  • Cocos Islands
  • Myanmar
  • UTC + 5:45, E‡
  • Nepal
  • Nepal's time zone of UTC+5:45 was adopted in 1986 [5]. This is the nearest quarter-hour from Greenwich to the local mean time of Nepal's capital Kathmandu, which is at 85°19'E or 5:41:16. Old CIA maps, 1995 and earlier, have Nepal at UTC+5:40, which may be their approximation of Kathmandu's local mean time. See Nepal Time.

    UTC + 5:30, E*
  • India (IST—Indian Standard Time)
  • Sri Lanka ([4] Sri Lanka moved from zone UTC+6 to UTC+5:30 on April 15, 2006)
  • UTC + 4:30, D*
  • Afghanistan
  • UTC + 3:30, C*
  • Iran
  • UTC − 3:30, P*
  • Canada (NST—Newfoundland Standard Time)
  • o Labrador (southeastern)*,
    o Newfoundland
    UTC − 9:30, V*
  • French Polynesia
  • o Marquesas Islands


    Lists of time zones - Wikipedia, the free encyclopedia

    Lists of time zones
    From Wikipedia, the free encyclopedia
      (Redirected from List of time zones)
    Jump to: navigation,
    search
    Main article: Time zone


    // Дальше — en.wikipedia.org
     



    Вот такие вот разработчики в Германии и Белоруссии.
       
    +
    -
    edit
     

    foogoo

    опытный

    Сергей-4030> Вы, извините, съезжаете на почве антиамериканизма. ;) Еще раз - проблема НЕ имплементировать библиотеку поддержки. Чтобы вам было понятнее (уж извините, но придется так) - допустим, в операционку встроена функция умножения длинных чисел. Эта функция используется в вашей программе в трех тысячах мест (ну, не догадались вы написать обертку для этого действия, не думали, что будет меняться). В вашей программе также используются чужие бинарные библиотеки (к ним исходных кодов вовсе нет/разбираться с ними муторно), которые тоже используют эту функцию ОС. И вот - постановлением правительства длинное умножение теперь по-другому считается. Поставщик ОС делает апдейт только следующей версии (с которой ваша программа не тестировалась как надо). Понимаете теперь?
    Сергей-4030> PS Вы точно "на правах эксперта"? ;) Вы можете себе представить, что это - 81 мегабайт только кода? Согласитесь, ваш проект, для которого вы писали, был несколько скромнее. ;)
    Ты пробовал напускать на свой проект "волшебный", по словам очевидцев, тулл рефакторинга из Эклипса, может поможет?
       
    US Сергей-4030 #06.10.2006 05:51
    +
    -
    edit
     

    Сергей-4030

    исключающий третье
    ★★
    foogoo> Ты пробовал напускать на свой проект "волшебный", по словам очевидцев, тулл рефакторинга из Эклипса, может поможет?

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

    ЗЫ Проект не "мой", а "наш". :) Разработчиков куча.
       
    +
    -
    edit
     

    Mishka

    модератор
    ★★★
    Татарину.
    А ты смотрел в лине в /usr/share/zoneinfo и man 5 tzfile? Там вроде почти все есть и работает для всего.

    Сергей, а java разве совсем операционкой не пользуется? Если пользуется, то в лине все просто — надо поправить или файл /etc/localtime или тот файл, на который она ссылается (тут зависит от линя — у некоторых туда копируется, у других идет мягкая ссылка в /usr/share/zoneinfo) — опять man 5 tzfile. Как на виндах бороться — не знаю.
       
    US Сергей-4030 #06.10.2006 07:18
    +
    -
    edit
     

    Сергей-4030

    исключающий третье
    ★★
    Mishka> Татарину.
    Mishka> А ты смотрел в лине в /usr/share/zoneinfo и man 5 tzfile? Там вроде почти все есть и работает для всего.
    Mishka> Сергей, а java разве совсем операционкой не пользуется? Если пользуется, то в лине все просто — надо поправить или файл /etc/localtime или тот файл, на который она ссылается (тут зависит от линя — у некоторых туда копируется, у других идет мягкая ссылка в /usr/share/zoneinfo) — опять man 5 tzfile. Как на виндах бороться — не знаю.

    Пользуется, в каком-то смысле. Скажем, текущее время запрашивается у операционки. А вот когда нужно запросить что-то вроде "сколько часов пройдет между 0:00 03/11/2007 и 0:00 03/12/2007 - тут операционка не помогает. А самое поганое - нужно, чтобы функция знала, что до 2006 года - такие-то правила, а после - другие. :(
    В Java есть такой абстрактый класс - TimeZone и его Сановская имплементация - без исходника. :( Вот в нем-то и проблема.
       
    +
    -
    edit
     

    DaddyM

    опытный

    Сергей-4030> В Java есть такой абстрактый класс - TimeZone и его Сановская имплементация - без исходника. :( Вот в нем-то и проблема.
    Именно поэтому для своих проектов никогда не возьму программу или среду без исходников. Так что для меня Джава это в первую очередь недоделанная открытая библиотека классов. Сами открытые VM уже вроде нормальные.

    А OCaml копилируется в С - так что все равно всех уделает если надо :)
       
    EE Татарин #06.10.2006 12:32
    +
    -
    edit
     

    Татарин

    координатор
    ★★★★★
    Татарин>> Вопрос следующий: какого фига в ТАКОМ (связанном с расписанием и временем, да еще и большом, "на века") проекте не предусмотрели такой тривиальной вещи?
    Сергей-4030> Какой тривиальной вещи? Где она тривиальна? Еще раз - вы вообще все операции обертываете, чтобы если что не так - заменить своей реализацией? У вас свой собственный wrapper над файлом, скажем? (У нас, кстати, File "обернут" ;) )
    В серьезных проектах врапперы почти на все. Слишком большие вложения, чтобы оставлять себе возможность дял пролета.

    Сергей-4030> А что делать с решениями третьих фирм? Их тоже обязать пользоваться вашими обертками? А если они про вас никогда не слыхали?
    Опять же вопрос к архитектору и тем, кто принимал решения.

    Татарин>> Суть моей шутки (смеяться; "лопата") состояла в том, что с таким подходом в Бразилии имели бы катастрофу-2000 по два раза в год. :)
    Сергей-4030> Нет, там бы написали так, чтобы обработать проблему. Здесь проблемы не было и предвидеть ее было нельзя (начали разработку, вернее, портирование на Джаву 4 года назад) - поэтому и решать проблему не стали.
    Неверно расставили приоритеты. Я согласен с тем, что предусмотреть было нетривиально и "работает - не трогай". Но ведь проектировщикам таких систем платят именно за нетривиальную догадливость, системность и предусмотрительность. :)
    Ладно, "шутка затянулась" (С). По сути - могу только посочувствовать.
    (И ИМХО, уверен, что это исправят ближе к сроку. Все-таки им-то не 85 мегабайт кода править. :))

    Сергей-4030> По сути это меняет очень много. На порядок больший проект - на два-три порядка сложнее, требует много большей организации.
    Вот именно... а ее - много бОльшей - не случилось.
       
    EE Татарин #06.10.2006 13:05
    +
    -
    edit
     

    Татарин

    координатор
    ★★★★★
    Mishka> А ты предусмотрел, что завтра в России могут отменить это дело? :) А предусмотрел, что по четным годам все будет сдвинуто на день вперед, а по нечетным на день назад? :P
    Конечно. :)
    Правда, насчет нечетных лет-дней придется в код класса дописывать, через интерфейс администратора (а он порядком позволяет) не справиться... но катастрофой это не станет.
    Если почитать трагическую историю времени за последние 70 лет - станешь предусмотрительным...

    Mishka> И где там учитыают? У нас вот купили Норвежскую компанию — с таймзонами полная жопа. Или немецкую — тоже самое.
    Конторы такие?

    Mishka> Ну и? Тебе показать бразильский код, который с нормальными зонами не работает? Я имел с ними дело в прошлом году. Тетечка оказалась достаточно приятной. :)
    Ладно, ладно... У них тоже 80 метров кода?

    Mishka> Ты учел сдвиг на 30 минут, 15 минут, 45 минут.
    Конечно. Это как раз тривиально. :) Вплоть до секунд могу (серьезно, предусмотрено в связи с "родным временем", которое не таймзона, но может быть использовано как).

    Mishka> А то, как раз с немцами и (гы-гы — белоруссами) возился, когда они забывлиЖ
    Откуда вы таких берете? ;)

    Mishka> Nepal's time zone of UTC+5:45 was adopted in 1986 [5]. This is the nearest quarter-hour from
    Да, Катманду рулит с неистовой силой. :D
    А насчет разработчиков - у них, небось, и проекты были поменьше.

    Линукс - да, не только смотрел, но и скоммуниздил в итоге у них всю инфу своим импортером. Тратить еще полгода на исторические изыскания мне бы просто никто не дал бы. Хотя дело интересное, я бы с удовольствием. :)
       
    +
    -
    edit
     

    Balancer

    администратор
    ★★★★★
    foogoo> По сравнению с проблемой 2038-го на UNIX, это мелочи :)

    У нормальных людей проблема 2038 вылезти не должна :) Думается мне, что к тому времени все int'ы будут, как минимум, 64 бита.

    В PHP, на котором у меня все таймерные вычисления, уж наверняка :D Так что даже софт переписывать не придётся.
       
    +
    -
    edit
     

    Balancer

    администратор
    ★★★★★
    Татарин> Так вот, на правах эксперта :) авторитетно заявляю: какие же мелочи Вас волнуют!

    В Linux пакет timzone обновляется, кажется, чаще любого другого :D

    code text
    1. # ls -l timezone*
    2. -rw-r--r-- 1 root root 171869 Jul 14 15:54 timezone-data-2006g.txt
    3. -rw-r--r-- 1 root root 179706 Aug 22 08:53 timezone-data-2006j.txt
    4. -rw-r--r-- 1 root root 176150 Aug 29 08:22 timezone-data-2006k.txt
    5. -rw-r--r-- 1 root root 176304 Oct  3 20:20 timezone-data-2006m.txt


    :)

    Т.е. только за этот год вышли версии от a до m :) Собственно, как видно, буквально позавчера было очередное обновление.
       
    +
    -
    edit
     

    Balancer

    администратор
    ★★★★★
    foogoo> Я ещё ни разу не "держал в руках" хорошей джавской программы, а смотреть как у писюка память кончается со скоростью звука, особенно под каким-нибудь КолдФьюжином, это просто ножом по сердцу...

    Память - это да, а так - постоянно пользуюсь Azureus'ом, написанном на Java. Это из "бытовых". Плюс тот же l2j-сервер. Первый он как бы среди лучших среди BitTorrent-клиентов. Второй - вообще единственный среди реально работающих проектов эмуляторов Lineage 2 :)
       
    +
    -
    edit
     

    Balancer

    администратор
    ★★★★★
    Сергей-4030> Ну, посмотрите хотя бы на Эклипс. ;)

    А, да! Как я мог про Эклипс ещё забыть. Тоже очень впечатляющий проект.
       
    +
    -
    edit
     

    Balancer

    администратор
    ★★★★★
    foogoo> Эклипс - джавская программа для джавы.

    Я на нём обычно PHP-проект гоняю :) Есть IDE-плагины под Си++, TeX и т.д. и т.п.
       
    +
    -
    edit
     

    Balancer

    администратор
    ★★★★★
    DaddyM> Чем тебе байткоды помогут рулить аппаратурой то или системой?

    Ну так в целом ряде мобильников рулят же.
       
    +
    -
    edit
     

    Balancer

    администратор
    ★★★★★
    Сергей-4030> Кстати, про быстроту OCaml - факты, пожалуйста, в студию. ;) Прямо так-таки на любых задачах в 2-3 раза?

    Всё от конкретных задач и реализаций зависит: Which programming languages are fastest? | Computer Language Benchmarks Game

    Но в целом O'Caml бегает шустрее. Если ещё учесть, что у него и уровень намного выше, то язык очень интересный.

    ...

    Правда, я сейчас всё больше изучаю языки чисто скриптовые. удобнее :)
       
    +
    -
    edit
     

    DaddyM

    опытный

    DaddyM>> Чем тебе байткоды помогут рулить аппаратурой то или системой?
    Balancer> Ну так в целом ряде мобильников рулят же.
    Так речь шла о переносимости :) То что на интерпретаторе можно писать драйвера для меня не открытие:) Для тогоже Форта вообще нормальная практика.
       
    +
    -
    edit
     

    Balancer

    администратор
    ★★★★★
    Сергей-4030> А вот когда нужно запросить что-то вроде "сколько часов пройдет между 0:00 03/11/2007 и 0:00 03/12/2007 - тут операционка не помогает.

    Да, на PHP с этим проще. Оно всё через POSIX делает, насколько я понимаю.

    code text
    1. # php -r 'echo strtotime("2006-10-29 02:00") - strtotime("2006-10-29 01:59:59");'; echo
    2. 3601


    Итого, между 01:59:59 и 02:00 29-го октября пройдёт целый час :)
       
    +
    -
    edit
     

    Balancer

    администратор
    ★★★★★
    DaddyM> Так речь шла о переносимости :) То что на интерпретаторе можно писать драйвера для меня не открытие:) Для тогоже Форта вообще нормальная практика.

    Так какие с переносимостью-то вопросы? Прикладная программа вообще не должна ничего знать о железе :) Иначе - зачем ОС?

    А JVM - это такая надстройка над ОС. Или даже самостоятельная ОС.
       
    +
    -
    edit
     

    foogoo

    опытный

    Сергей-4030> В Java есть такой абстрактый класс - TimeZone и его Сановская имплементация - без исходника. :( Вот в нем-то и проблема.

    "Этот стон у нас песней зовётся..." (с) классик

    Как встретишь джавского программиста, все одни и те же разговоры о не кошерности некоторых джавамашин. Про особенности работы гуя на ПЦ и сане... Все равно, что если б Ц-програмер рассуждал про то, что делловские компы хорошие, а хулит-паккардавские кривые...

    Просто как в советские времена была Ява явская и неявская... :D
       
    +
    -
    edit
     

    foogoo

    опытный

    foogoo>> По сравнению с проблемой 2038-го на UNIX, это мелочи :)
    Balancer> У нормальных людей проблема 2038 вылезти не должна :) Думается мне, что к тому времени все int'ы будут, как минимум, 64 бита.
    Balancer> В PHP, на котором у меня все таймерные вычисления, уж наверняка :D Так что даже софт переписывать не придётся.

    Придется, вот как расширят и углУбят PHP в новой версии, так и сядешь переписывать. :)
       
    +
    -
    edit
     

    Mishka

    модератор
    ★★★
    DaddyM> Именно поэтому для своих проектов никогда не возьму программу или среду без исходников. Так что для меня Джава это в первую очередь недоделанная открытая библиотека классов. Сами открытые VM уже вроде нормальные.

    Трудно тебе жить. Ни одного коммерческого компилятора не можешь использовать. :P Да и с гнушными тяжело жить будет — как переделывать glibc?
       
    1 2 3 4 5

    в начало страницы | новое
     
    Поиск
    Настройки
    Твиттер сайта
    Статистика
    Рейтинг@Mail.ru