metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-06-08 09:38 pm

CMake и относительные пути.

А теперь о совсем жуткой содомии. CMake не умеет относительные пути к файлам.
И даже пытается это оправдать: http://www.cmake.org/Wiki/CMake_FAQ#Why_does_CMake_use_full_paths.2C_or_can_I_copy_my_build_tree.3F

Что есть у вас по этому поводу сказать, мои маленькие девиантные друзья?

[identity profile] blackyblack.livejournal.com 2012-06-09 07:54 am (UTC)(link)
Java упиханная в exe файл вполне подойдёт. Также C# подойдёт, но фреймворк должен быть на компе.

[identity profile] aamonster.livejournal.com 2012-06-09 08:33 am (UTC)(link)
Ебать... Варианты хуже редко доводится видеть. Лучше уж на плюсах написать.

[identity profile] blackyblack.livejournal.com 2012-06-09 09:59 am (UTC)(link)
А что не так то?

[identity profile] aamonster.livejournal.com 2012-06-09 10:41 am (UTC)(link)
Сколько видел прог на яве - под виндой их установка превращалась в ад локалхоста.

[identity profile] theiced.livejournal.com 2012-06-09 11:04 am (UTC)(link)
1. ложим жре рядом с прогой.
2. профит.

[identity profile] aamonster.livejournal.com 2012-06-09 11:41 am (UTC)(link)
Ну да, как-то так. Обычно после этого она всего лишь страшно выглядит, но хотя бы запускается =)
Только это уже не укладывается в требования "один экзешник, не требующий установки"

Правда, обычно
1. Таких требований всё-таки нет
2. Не уверен, что современный C++ им удовлетворяет (я не помню, можно ли на VC2010+ прилинковать рантайм статически - смутно помнится, что уже нет)

[identity profile] zamotivator.livejournal.com 2012-06-09 08:12 pm (UTC)(link)
2. в 2010 ещё можно было

[identity profile] inhate.livejournal.com 2012-06-09 02:08 pm (UTC)(link)
Я же русским по белому написал - есть голая XP, скачали один exe-файл размером до 10 мегабайт и задача мгновенно начала выполнять (без докачки и установки любого рантайма), допустимы два лага:
1) Проверка бинаря антивирусом
2) Firewall

[identity profile] inhate.livejournal.com 2012-06-09 02:11 pm (UTC)(link)
А какой будет размер у такого exe? В 10Mb точно вложимся? В лучше бы на самом деле в 2Mb.

[identity profile] nealar.livejournal.com 2012-06-09 02:52 pm (UTC)(link)
Вот это требование - надуманное. Потому что "голая ХР"

[identity profile] inhate.livejournal.com 2012-06-09 03:13 pm (UTC)(link)
Т.е. я должен определённому проценту своих пользователей сказать: "пожалуйста, не надо платить нам денег, заплатите их лучше кому-то из наших конкурентов по вышему выбору" - вы это предлагаете?

[identity profile] nealar.livejournal.com 2012-06-09 03:22 pm (UTC)(link)
Целый процент пользователей убежит, если бинарь окажется толще двух метров?

[identity profile] inhate.livejournal.com 2012-06-09 03:50 pm (UTC)(link)
Нет, если окажется чуть толще двух - скорее всего не убежит даже процент, вот если вдруго это будет 50-100Mb - потери будут. Если ко времени закачки вышеописаной вудервафли добавится установка рантайма - потери станут еще больше. И да, каждый процент пользователей это деньги, почему я должен от них отказываться? Чтобы можно было нанять быдлокодеров? Так бюджет пока не возражает потив найма нормальных программистов.
Есть зависимость между тем, сколько времени пользователь тратит на цепочку "найти в интернете - открыть сайт - заргистрироваться - скачать - устновить - запустить - залогинится - заплатить деньги" и собственно количеством бабла.
В частности от момента "тыкнул по ссылке" до момента "ой, че-то запустилось" должно проходить как можно меньше времени, при этом от пользователя должно требоваться минимум телодвижений, иначе наши прокастинированые гиперактивные пользователи просто перестанут ждать и попробуют получить требуемый результат с помощью продуктов конкурентов.
После того, как "что-то появилось" уже можно немножко передохнуть - показать пользователю форму регистрации или там руководство по получению профита скорейшим способом или просто рекламу других продуктов компании.
На этапах между "попал на сайт" и "залогинился в установленый экземпляр b2c-системы" отваливается недопустимо много пользователей (десятки процентов), соответсвенно тут всё подвергается оптимизации по юзабилити.
Ну а то, что кому-то придётся писать на сях или плюсах настолько незначительное недоубство что просто плевать на него, если бы была возможность извлечь еще какой-то профит от написания ассемблерных вставок - я бы заказал и ассемблерные вставки.

[identity profile] nealar.livejournal.com 2012-06-09 04:04 pm (UTC)(link)
вот если вдруго это будет 50-100Mb - потери будут
Вот я и говорю, что требование надуманное. 50 метров - да, отпугнут, а 10 или 2 - никто даже и не заметит. Потому что платформа такая.
Ну а то, что кому-то придётся писать на сях или плюсах настолько незначительное недоубство что просто плевать на него, если бы была возможность извлечь еще какой-то профит от написания ассемблерных вставок - я бы заказал и ассемблерные вставки.
В двухметровый бинарь поместится даже статически собранный х-ь. То есть, критерии правильные, если трудности с деплоем приносят наибольшие убытки, то надо пилить именно деплой. Вплоть до добавления программы в родной дистрибутив XP, если потребутся.
Но пример "почему именно кресты" - неудачный.

[identity profile] inhate.livejournal.com 2012-06-09 04:12 pm (UTC)(link)
Ну так а на чём такое писать?
Plain C или C++ - всё остальное так или иначе требует тащить рантайм, пичалька.
Ну паскаль еще может быть, но дельфи вроде бы всё-таки умерло?

[identity profile] nealar.livejournal.com 2012-06-09 06:50 pm (UTC)(link)
Рантайм же гвоздями прибивается к бинарнику по умолчанию, или это только в ГХЦ так?

[identity profile] zamotivator.livejournal.com 2012-06-13 03:10 am (UTC)(link)
Только в GHC

[identity profile] metaclass.livejournal.com 2012-06-09 05:15 pm (UTC)(link)
Более того, конкретно в данной задаче от плюсов неудобств вообще не наблюдается.

[identity profile] nealar.livejournal.com 2012-06-09 06:51 pm (UTC)(link)
Если неудобств прям совсем нет, то ниже березовский рекомендует обычным мейком собирать. И шо-то в этом есть.

[identity profile] metaclass.livejournal.com 2012-06-09 05:14 pm (UTC)(link)
Не, кстати, требование достаточно внятное. Больше 10 мег точно не следует такого делать.
Впрочем, жабу я в такое бы все равно не потащил, ну его фпень.

[identity profile] nealar.livejournal.com 2012-06-09 06:50 pm (UTC)(link)
Х-ь спокойно в эти требования помещается. Хотя я помню времена, когда таки нет. И другие компилируемые языки как бы должны.
И как бы, юзер-вендузятнег, как вы его представляете, разницу между 10 метрами и 2 нуникак не ощутит. 50 - да, многовато, может обидеться.
Жабу с рантаймом утрамбовать в один экзекутабель - я не умею, научите меня как. А считать, что ЖРЕ есть искаропке, на венде нельзя.

[identity profile] inhate.livejournal.com 2012-06-09 07:15 pm (UTC)(link)
OMFG, а как Х-ь дружит с вендовой гуйнёй?

[identity profile] metaclass.livejournal.com 2012-06-09 07:26 pm (UTC)(link)
Дружит нормально. А вот с либами на С/С++ - пришлось бы месяц только FFI биндинги писать.

[identity profile] blackyblack.livejournal.com 2012-06-11 11:38 am (UTC)(link)
"Жабу с рантаймом утрамбовать в один экзекутабель - я не умею, научите меня как."
Я и сам не умею, но видел лично такую фигню.

[identity profile] metaclass.livejournal.com 2012-06-09 05:12 pm (UTC)(link)
Уже в два вложились тащемта :)