metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-01-22 10:36 pm

atof, strtod и локаль.

Внезапно: а вот как положено в коде на С конвертить строку в double, если мы точно знаем, что в строке десятичный разделитель ".", и точно знаем, что код будут запускать на системе с адовыми локалями, у которых разделитель "," типа русской, белорусской итд? В дотнете, как положено, есть функция с параметром для локали и инвариантная локаль InvariantCulture. А в олдскульно-кошерном C как? setlocale(LC_NUMERIC,"C"); чо-то не рекомендуют, говорят, не thread-safe.

[identity profile] thedeemon.livejournal.com 2012-01-23 08:36 am (UTC)(link)
Ок, теперь вспоминаем контекст - "нормальный GUI". Что там с гуем в эрланге?
Ну и форкнешь воркера, потом сиди организовывай IPC дабы его прогресс отобразить и результаты получить... Как взаимодействовать с воркером предполагается? И как выглядит для юзера форк гуевого приложения, кстати? Ну и потом, говорим GUI - подразумеваем винду, реже ios и андроид, реже MacOS, но уж совсем редко прочие юниксы. Как там у эрланга, ghc и скалы с iOS?

[identity profile] permea-kra.livejournal.com 2012-01-23 10:17 am (UTC)(link)
>Что там с гуем в эрланге ?
биндинги к ГТК из коробки. Подойдет?

>Как взаимодействовать с воркером предполагается?
Через mmap отдать - забрать результаты и через пайп/сокет/msg_queue читать диагностику/слать команды, благо такой функционал предоставляется по-моему везде.

>эрланга, ghc и скалы c ios ?
понятия не имею, я от яблочного мира бесконечно далек. На андроиде есть жаба, а скала - это жаба, так что скала на андроиде должна быть, но про остальное - просто не в курсе

[identity profile] thedeemon.livejournal.com 2012-01-23 10:39 am (UTC)(link)
Не, GTK только в линупсе годится. В других системах слишком чужеродно выглядит, да и весит нехило.

Если через общую память общаться, то нафик и форкать было. Разве что для большей стабильности. Только припоминаю, что мне регулярно удавалось в ХР синий экран сделать при общении моих процессов через расшаренную память. Система, конечно, не лучшая и не свежая, но все еще актуальная.

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

[identity profile] permea-kra.livejournal.com 2012-01-23 11:37 am (UTC)(link)
Gtk выглядит так, как ему скажут. Нехило весит любой гуи-тулкит, простите. Если в платформе предусмотрены java или .Net , то языков под них, в т.ч. уверенно хороших - дофига, при этом есть полный доступ к нативным возможностям платформы. Кложур (лисп) тот же. Писать при этом на жабе/шарпе совершенно не обязательно.

Именно для надежности. Приложение вообще надо распиливать на максимальное число изолированных задач, чтобы при необходимости резетить их без большого дизастера. Особенно предполагающие много фоновых вычислений.

[identity profile] thedeemon.livejournal.com 2012-01-23 12:06 pm (UTC)(link)
Я просто пошел на главную страницу скриншотов на gtk.org, а там такое. Для винды примеры чуть лучше, но местами странные шрифты и размеры контролов.

[identity profile] permea-kra.livejournal.com 2012-01-23 12:14 pm (UTC)(link)
вот gtk-шная тема для венды

http://gtk-wimp.sourceforge.net/screenshots/

Просто её нужно найти и поставить. Для других платформа наверняка тоже есть.

[identity profile] thedeemon.livejournal.com 2012-01-23 12:25 pm (UTC)(link)
Чего-то там все ХР и 2к. Как оно в семерке смотрится? Есть ли современные фишки? Судя по дате на копирайте, это все еще пре-виста.

[identity profile] permea-kra.livejournal.com 2012-01-23 12:40 pm (UTC)(link)
Семерка - это ересь, я про неё ничего сказать не могу. Наверняка есть, но надо его найти.

[identity profile] tzirechnoy.livejournal.com 2012-01-23 05:48 pm (UTC)(link)
>потом сиди организовывай IPC

Конечно, организовывай. А что, в трэдах оно без ITC делается? ORLY? И сколько секунд при этом проходит до разноса памяти в щепки?

[identity profile] thedeemon.livejournal.com 2012-01-23 06:31 pm (UTC)(link)
С разделяемой памятью да одним адресным пространством надо только синхронизацию аккуратно сделать, передача данных тривиальна. До разноса памяти - зависит от кривизны рук. Бывает и без разносов.

[identity profile] tzirechnoy.livejournal.com 2012-01-23 08:56 pm (UTC)(link)
Ну, а через pipe -- надо только передачу данных аккуратно сделать, синхронизацыя тривиальна.

При этом, кстати, сделать передачу данных в pipe так, чтобы она обычно работала, но иногда делала что-то не то -- достаточно нетривиально. Ну, в смысле, что это какие-то кондовые такие ошыбки, которых в нормальном случае будет видно быстро.
С трэдами -- всё, в общем-то, наоборот.