cd sources
fossil revert
fossil update
cd ../freshlib
fossil revert
fossil update
Точно такое у меня случилось после того как я из-за бага большое количество файлов записалось с длиной 0. Можете посмотреть нет ли у вас исходники с длиной 0 байта.
Кстати, почему бы и нет? Ведь, MS шпионит за пользователями и всегда знает сколько экземпляров Windows работают. А узнать сколько экземпляров Linux работают, в принципе невозможно. По крайней мере все методы о которых я думаю будут давать сильно заниженные значения.
Очень сложно сказать. Ведь всё в оконном менеджере завязано на взаимодействие с X. Если это был мой код, то я бы смог переписать. Я с моим кодом такое уже проделывал и не раз. Если чужой код, я бы предпочел написать все с чистого листа. Ведь, написать простенький оконный менеджер по сути не такая уж и сложная задача. А вот понять чужой код, это всегда для меня было очень сложной задачей. Но ведь это про меня. Очень вероятно, у другого программиста, с другим набором умений получиться по другому.
А с другой стороны – зачем? Если и WM и XLib писаны например на C, то какая разница где именно будет находится код протокола?
Насколько я знаю, нет. По крайней мере те у которых смотрел исходники все используют XLib. Даже не xcb. В исходниках GTK и Qt не копался, но кажется, что там тоже будет XLib.
Это называется «маркетинг». Вы же не возражаете, когда Google вам подсовывает рекламу? Да и если возражаете, это гуглу по барабану.
И в отличие от рекламы зубной пасты и прокладок, совет перейти на Линукс, как раз по теме и реально поможет. Не забывайте, что большинство линуксоидов, это бывшие виндузятники. Они прекрасно вас понимают и предлагают дельное решение. Но конечно, это очень важно чтобы сам, на собственной шкуре все попробовать и пострадать, потребовать чтобы тебя пожалели...
(А кстати, где-то я читал, что «Habr это не жалобная книга» – а да, в правилах сайта. Но напоследок очень часто попадаются статьи, которые это правило нарушают. Может его отменили?)
Ну, смотрите, давно известно что «один переезд равен двум пожарам».
Но не переезжать, когда новое жилище и лучше и дешевле и комфортнее, пусть даже не сразу, а в перспективе, глупо.
Просто так сидеть в арендованном жилье, которое вам уже не нравится, и ныть на хозяина? Ну извините, но хозяину все равно. Он так как вам хочется не сделает. Он сделает как ему хочется.
Вижу что разобрались, но для читающих – у нулевого запроса нет заголовка в 4 байт. У него только 48 байт когда используется авторизация MIT-MAGIC-COOKIE-1.
Почему с каждой новой версией Windows от нее усиливается усталость
Почему, это ясно. Но возникает вопрос сколько версий понадобятся чтобы пользователь устал достаточно чтобы перейти на Линукс и наконец-то отдохнуть от всего вот этого?
Меня хватило до Windows 7. Тянул насколько мог. Висту протянул, а потом снес XP и вместо Windows 7 инсталлировал Linux.
В принципе, unix сокет должен вести себя как файл. То есть можно было просто открыть и потом читать и писать через дескриптор. Но возможно я не прав – не очень силен в bash. Я поэтому и такой челендж придумал, чтобы попрактиковаться. :D
Ну только в качестве примера – я понял что ID окна генерируется на стороне клиента только когда начал копаться в протоколе. До того думал, что XLib присылает запрос CreateWindow, а сервер делает окно и возвращает его идентификатор. Так происходит в Windows и так выглядит что происходит в xlib. В xlib еще не ясно какие функции ждут ответ от сервера, а какие нет. Да, если теперь, когда научил сам протокол начну использовать xlib, все будет намного яснее, но зачем, если знаю протокол?
А вообще, с xlib мы получаем еще один слой абстракции, который ничего не ускоряет, ничего не упрощает, а только все запутывает. А поверх него городят GTK, и оконных менеджеров, потому что программисты ничего не знают про X11 и не могут его напрямую использовать.
А дистрибутивы Linux даже этого не знают, так как очень часто распространяются через bittorrent чтобы трафик экономить.
Попробуйте в директориях проекта выполнить:
Точно такое у меня случилось после того как я из-за бага большое количество файлов записалось с длиной 0. Можете посмотреть нет ли у вас исходники с длиной 0 байта.
Кстати, почему бы и нет? Ведь, MS шпионит за пользователями и всегда знает сколько экземпляров Windows работают. А узнать сколько экземпляров Linux работают, в принципе невозможно. По крайней мере все методы о которых я думаю будут давать сильно заниженные значения.
Очень сложно сказать. Ведь всё в оконном менеджере завязано на взаимодействие с X. Если это был мой код, то я бы смог переписать. Я с моим кодом такое уже проделывал и не раз. Если чужой код, я бы предпочел написать все с чистого листа. Ведь, написать простенький оконный менеджер по сути не такая уж и сложная задача. А вот понять чужой код, это всегда для меня было очень сложной задачей. Но ведь это про меня. Очень вероятно, у другого программиста, с другим набором умений получиться по другому.
А с другой стороны – зачем? Если и WM и XLib писаны например на C, то какая разница где именно будет находится код протокола?
Насколько я знаю, нет. По крайней мере те у которых смотрел исходники все используют XLib. Даже не xcb.
В исходниках GTK и Qt не копался, но кажется, что там тоже будет XLib.
Ну, не «арендованное» а «аварийное жилье». Суть-то не меняется.
О! Это выглядит отлично! И работает тоже отлично.
Это называется «маркетинг». Вы же не возражаете, когда Google вам подсовывает рекламу? Да и если возражаете, это гуглу по барабану.
И в отличие от рекламы зубной пасты и прокладок, совет перейти на Линукс, как раз по теме и реально поможет. Не забывайте, что большинство линуксоидов, это бывшие виндузятники. Они прекрасно вас понимают и предлагают дельное решение. Но конечно, это очень важно чтобы сам, на собственной шкуре все попробовать и пострадать, потребовать чтобы тебя пожалели...
(А кстати, где-то я читал, что «Habr это не жалобная книга» – а да, в правилах сайта. Но напоследок очень часто попадаются статьи, которые это правило нарушают. Может его отменили?)
Ну, смотрите, давно известно что «один переезд равен двум пожарам».
Но не переезжать, когда новое жилище и лучше и дешевле и комфортнее, пусть даже не сразу, а в перспективе, глупо.
Просто так сидеть в арендованном жилье, которое вам уже не нравится, и ныть на хозяина? Ну извините, но хозяину все равно. Он так как вам хочется не сделает. Он сделает как ему хочется.
Вижу что разобрались, но для читающих – у нулевого запроса нет заголовка в 4 байт. У него только 48 байт когда используется авторизация MIT-MAGIC-COOKIE-1.
Почему, это ясно. Но возникает вопрос сколько версий понадобятся чтобы пользователь устал достаточно чтобы перейти на Линукс и наконец-то отдохнуть от всего вот этого?
Меня хватило до Windows 7. Тянул насколько мог. Висту протянул, а потом снес XP и вместо Windows 7 инсталлировал Linux.
Очень странно. А откуда у вас этот fasm.x64?
И все ли как надо с исходниками? Что возвращает
fossil statвsource/и в../freshlib/?У меня компилируется хорошо что с 32, что с 64 битовым FASM...
Благодаря @feelamee и его эксперименты с Python нашел ошибку в статье.
В нулевом запросе для подключения есть еще 2 байта для выравнивания после поля
auth_data_len.Пример после таблицы тоже был неправилен. Теперь все исправлено. Длина начального запроса должна быть 48 байт.
В принципе, unix сокет должен вести себя как файл. То есть можно было просто открыть и потом читать и писать через дескриптор. Но возможно я не прав – не очень силен в bash. Я поэтому и такой челендж придумал, чтобы попрактиковаться. :D
Вы там берегите себя. Закапайте что нибудь, а то недолго инфекцию внести... :D
Мне кажется, что через nc это не получится. Надо открывать сокет и читать из него наверное через read. Ну и писать через echo.
Ну, вы уж извините, иностранец я. Если написал бы на хорошем болгарском вам от этого легче было?
А что я написал не так??? Не виляйте а напишите прямо.
Ну только в качестве примера – я понял что ID окна генерируется на стороне клиента только когда начал копаться в протоколе. До того думал, что XLib присылает запрос CreateWindow, а сервер делает окно и возвращает его идентификатор. Так происходит в Windows и так выглядит что происходит в xlib. В xlib еще не ясно какие функции ждут ответ от сервера, а какие нет. Да, если теперь, когда научил сам протокол начну использовать xlib, все будет намного яснее, но зачем, если знаю протокол?
Так статья не об этом же.
А вообще, с xlib мы получаем еще один слой абстракции, который ничего не ускоряет, ничего не упрощает, а только все запутывает. А поверх него городят GTK, и оконных менеджеров, потому что программисты ничего не знают про X11 и не могут его напрямую использовать.