psilogic: (Default)
psilogic ([personal profile] psilogic) wrote2008-12-20 12:11 pm

Секрет фирмы

Наша автопромышленность выпускает говно на колесах, которое даже при диких пошлинах на иномарки покупать не желают.

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

P.S. Моя - не автомобилист, так что я могу совсем не понимать чего-то очевидного водителю со стажем. Прошу не стесняться писать прописные истины и подробности :] Также любые холивары и разборки в коментах только приветствуются :]

[identity profile] http://technorati.com/people/technorati/ketmar/ (from livejournal.com) 2008-12-20 11:04 pm (UTC)(link)
нет, программа A хочет запустить программу A. это раз.

два: вот тебе задача: программа A открыла сокетное соединение. дальше она хочет запустить программу B, которая с этим соединением будет работать. вперёд, решай без форка. а я поржу над накромождением костылей, которые еле-еле со скрипом это всё реализуют через жопу. а сценарий из real life, обычный многоклиентский сервер, промеждупрочим.

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

хинт: потому что у винды в природе нет механизма fork(), да, который и обеспечивает скорость в данном случае.

ну, и в качестве бонуса ещё задача: проапдейтить работающий бинарь из самого себя. пусть он один себе работает, без соединений всяких. т.е. клиентов на время апдейта можно отстрелить. где новый бинарь — известно, пусть на диске валяется. права, положим, есть.

[identity profile] http://technorati.com/people/technorati/ketmar/ (from livejournal.com) 2008-12-20 11:07 pm (UTC)(link)
а, да. когда придумаешь решение задачи с сокетами, попробуй добавить в него ещё несколько открытых файлов, которые надо не переоткрывать в новом процессе, а использовать уже открытыми. когда добавишь в код лапши, я могу дальше дописать условий. так, глядишь, доберёмся до нужной функциональности и посмотрим на понятность твоего кода и кода с fork()'ом, который автоматом дупит и хэндлы в том числе.

[identity profile] http://technorati.com/people/technorati/ketmar/ (from livejournal.com) 2008-12-20 11:09 pm (UTC)(link)
если интересно, почему именно не переоткрывать файлы — потому что они удалены. и открывать нечего. а хэндл есть и с файлом можно работать, пока последний хэндл на него не закрыли. виндовый DeleteOnClose — не то решение.

[identity profile] psilogic.livejournal.com 2008-12-21 03:18 pm (UTC)(link)
[ нет, программа A хочет запустить программу A. это раз. ]

а ежели надо жопустить B? :) posix-треды вроде не сразу появились, а? ;)

[ вот тебе задача ]

в этой задаче я попользую тред

[identity profile] http://technorati.com/people/technorati/ketmar/ (from livejournal.com) 2008-12-21 03:32 pm (UTC)(link)
>а ежели надо жопустить B? :)
и об этом я написал.

>в этой задаче я попользую тред
уволен без выходного пособия. потому что твоё решение падучее и на разработку ушло больше времени.

[identity profile] psilogic.livejournal.com 2008-12-21 03:34 pm (UTC)(link)
[ уволен без выходного пособия ]

вернулся с ружжом :)

[identity profile] http://technorati.com/people/technorati/ketmar/ (from livejournal.com) 2008-12-21 03:43 pm (UTC)(link)
а поздняк. контора переехала, новый адрес неизвестен. долго за ружжом бегал! %-)

[identity profile] tikser.livejournal.com 2008-12-22 09:35 am (UTC)(link)
Это вы типа автопром обсуждаете? ;))
Вижу проблемы разработки софта, тонкости трудового законодательства и отдельные аспекты правоприменения огнестрельного оружия, а где машина-то? ;)))