haiku-os@conference.jabber.ru - 2012/01/10

00:07:38 Пользователи: Diver_, Flаmе, Nico-izo, michael_s(Atom330), Ботиха, Зелёновый (6)

00:07:38 ARM@haiku установил(а) тему: Сайт проекта: http://www.haiku-os.org
Haiku OS R1/alpha 2: http://www.haiku-os.org/get-haiku
Сайт сообщества: http://qube.ru/
BeShare: siarzhuk.dyndns.org
Логи конференции: http://siarzhuk.dyndns.org/haiku-os.logs
ВНИМАНИЕ: Для получения статуса "Участник" перешлите Вашу просьбу модераторам [как приватное сообщение].

00:07:38 Flаmе теперь away [40] (Автостатус (неактивен))

00:09:52 Flаmе теперь online [50]

00:48:06 Flаmе вышел

00:48:34 Flаmе зашел как модератор и администратор online [50]

00:48:42 Flаmе вышел

00:54:44 Flаmе зашел как модератор и администратор online [50]

00:54:51 Flаmе вышел

00:56:05 Flаmе зашел как модератор и администратор online [50]

00:56:22 Flаmе вышел

00:57:06 Flаmе зашел как модератор и администратор online [50]

01:10:07 Flаmе вышел (Replaced by new connection)

01:10:20 Flаmе зашел как модератор и администратор online [50]

01:27:50 Diver_ теперь away [5] (Auto Status (idle))

01:46:06 Diver_ теперь online [5]

01:47:28 Flаmе вышел (Replaced by new connection)

01:47:56 Flаmе зашел как модератор и администратор online [50]

01:53:19 Flаmе: смог ребутнуть роутер — стало отзывчевее, но скорость все равно чо-то никакая

01:53:47 Flаmе: но оказывается он настолько залип, что свой интерфейс открывал по 5 минут каждую страницу, а теперь летает

02:02:58 Diver_: а что за роутер?

02:03:07 Flаmе вышел

02:03:41 Flаmе зашел как модератор и администратор online [50]

02:03:49 Flаmе вышел

02:04:34 Flаmе зашел как модератор и администратор online [50]

02:04:41 Flаmе вышел

02:05:27 Flаmе зашел как модератор и администратор online [50]

02:05:35 Flаmе вышел

02:06:30 Flаmе зашел как модератор и администратор online [50]

02:06:38 Flаmе вышел

02:07:48 Flаmе зашел как модератор и администратор online [50]

02:07:56 Flаmе вышел

02:20:35 Flаmе зашел как модератор и администратор online [50]

02:20:41 Flаmе вышел

02:21:57 Flаmе зашел как модератор и администратор online [50]

02:22:04 Flаmе вышел

02:23:12 Flаmе зашел как модератор и администратор online [50]

02:23:17 Flаmе вышел

02:25:04 Flаmе зашел как модератор и администратор online [50]

02:25:10 Flаmе вышел

02:27:54 Flаmе зашел как модератор и администратор online [50]

02:28:17 Flаmе: длинк 300

02:28:31 Flаmе: матьиво

02:33:48 Diver_: DD-WRT пробовал?

02:35:14 Flаmе: не, но по ходу дело все же в провайдере, ща торренты пахали на мегабит в обе стороны, а страницы не грузятся толком

02:35:23 Flаmе: в общем, посмотрим, что будет днем

02:35:35 Flаmе: и сюда не мог приконнектиться по 80 порту как раз

02:35:37 Diver_: http://www.dd-wrt.com/wiki/index.php/Прошивка_DIR-300

02:36:03 Flаmе: угу, спасиб

03:06:42 Flаmе теперь xa [30]

03:46:52 Diver_ теперь away [5] (Auto Status (idle))

04:02:44 Зелёновый теперь online [30]

04:06:52 Diver_ теперь xa [5] (Auto Status (idle))

04:35:22 diGer зашел как модератор и администратор online [50]

04:45:21 diGer теперь away [40]

05:00:57 diGer теперь online [50]

05:10:57 diGer теперь away [40]

05:26:24 diGer теперь online [50]

05:39:04 diGer теперь away [40]

05:59:04 diGer теперь xa [30]

06:03:29 diGer теперь online [50]

06:09:34 Зелёновый теперь away [30]

06:11:03 siaržuk зашел как владелец конференции online [5]

06:13:34 diGer теперь away [40]

06:19:58 Зелёновый теперь online [30]

06:33:34 diGer теперь xa [30]

06:39:15 siaržuk теперь away [5] (Кто все эти люди? 8-( ))

06:41:44 Alex11223 зашел как постоянный участник online [5]

06:42:04 siaržuk теперь online [5]

06:51:35 siaržuk: Alex11223: ну предварительный кот выглядит хорошо. Может в использовании исключений потренируешься? ;-) Подходящий случай - прожка что должна тупо завершаться в случае любого несоответствия - как раз под эту технику.

06:53:12 Alex11223: какого несоответствия? При собственно доставания и записывания инфы?

06:54:00 siaržuk: да везде где не проходит проверка и возвращается Б_ЕРРОР

06:54:36 siaržuk: там кидаешь исключение а в самом main его ловишь и обрабатываешь, подчищая если надо недоделанный макефиле

07:01:51 diGer теперь online [50]

07:04:36 siaržuk теперь away [5] (Кто все эти люди? 8-( ))

07:08:22 siaržuk теперь online [5]

07:11:16 Nico-izo вышел

07:20:10 siaržuk вышел

07:33:32 diGer теперь away [40]

07:45:16 Diver_ теперь online [5]

07:50:42 diGer вышел

08:10:27 Diver_ теперь away [5] (Auto Status (idle))

08:15:26 Diver_ теперь online [5]

08:16:51 Зелёновый теперь away [30]

08:16:55 Зелёновый теперь online [30]

08:22:53 Alex11223: залил ч0ткого кота с исключениями

08:28:20 Diver_ теперь away [5] (Auto Status (idle))

08:29:18 Diver_ теперь online [5]

09:21:15 siaržuk зашел как владелец конференции online [5]

09:23:53 siaržuk: первую прверку тоже можешь под try-catch засунуть и кидать usagemessage как исключение. ;)

09:24:35 Alex11223: анаф?

09:24:58 siaržuk: чоь?

09:25:36 Alex11223: засовывать и кидать

09:25:52 siaržuk: проще и красивше

09:26:27 siaržuk: да, и что будет если в main ни под if ни под else if не попадёшь?

09:27:19 Alex11223: а так бывает?

09:30:02 siaržuk: А это не волнует - я задал вопрос именно по этому куску кода. Твои предположения о условиях в которых он будет выполняться меня не интересуют .... Твои предположения могут быть неверными, непонятыми теми кто будет дорабатывать твою программу, они могут измениться в будущем - потому обрабатывать все возможные ситуации даже если тебе кажется что они никогда не возникнут.... Ситуация когда "прыгун сигает с вышки в бассейн, но улетает не в воду а в небо" не так уж редка как нам хотелось-бы ;-) Поэтому нужно обрабатывать все ситуации по максимуму.

09:31:16 siaržuk: потратив десять минут на оптимизацию - это поможет сохранить время отладки тебе либо кому-то ещё в будущем.

09:32:40 siaržuk: в твоем случае програма завершится вообще без сообщений - хотя правильнее было бы проверить argc <= 1 и выкинуть уса́ж-меса́ж исключением... и тут-же спокойно приступать к телу - не обрамляя его в скобки if-а

09:33:09 siaržuk: меньше писать - меньше читать - быстрее понимать.

09:37:13 siaržuk: тут компактнее слепи в один блок.

const char* kTemplateFileName = "/boot/develop/etc/makefile";

fstream gProjFile;

uint32 gProjFileLength;

uint32 gProjLength;

fstream gMakeFile;

fstream gTemplateFile;


тут с переносом сделай:

const char* kHelpMessage = "# proj2make:\n"
        "# usage: proj2make <projPath> [makePath]\n"
        "# if makePath parameter doesn't specified makefile will be created in\n"
        "#        the same directory as .proj file\n"
        "# example: proj2make /boot/home/myprog/myprog.proj";

09:37:38 siaržuk: const char* kHelpMessage = \
        "# proj2make:\n"
        "# usage: proj2make <projPath> [makePath]\n"
        "# if makePath parameter doesn't specified makefile will be created in\n"
        "#        the same directory as .proj file\n"
        "# example: proj2make /boot/home/myprog/myprog.proj";

09:38:01 siaržuk: тогда сообщение у тебя будет выглядеть также как на экране - визуально легче его проверять если что

09:38:31 siaržuk: глянь нету ли у find_dir нужной тебе коснтанты. :-)
const char* kTemplateFileName = "/boot/develop/etc/makefile";

09:39:07 siaržuk: комментарии вроде нужно писать _над_ комментируемым кодом.

        if (argc > 2) //if makefile path specified
                                makePath = argv[2];
                        else { //default makefile path

09:49:16 Alex11223: залил ч0ткого кота

09:50:29 Alex11223: эх...а как этот файл писать? прочитать весь template в строку и по мере чтения .proj добавлять в нужное место, а потом все в новый мейк?

09:51:18 siaržuk: а как макемаке делает?

09:51:31 Alex11223: да чота хз

09:51:42 siaržuk: ну так разберись

09:52:37 siaržuk: можешь тупо читать строчку из темплейта - смотреть есть ли ключевая переменная в начале и заменять эту строчку на нужную тебе строчку

09:52:59 siaržuk: а если нету переменной - просто копирзуй строчку в выходной

09:58:31 siaržuk: короче квась реально полезного кота давай. :)

10:00:16 siaržuk вышел

10:03:35 siaržuk зашел как владелец конференции online [5]

10:12:21 Зелёновый теперь away [30]

10:18:41 Diver_: siaržuk: B_SYSTEM_DEVELOP_DIRECTORY ?

10:19:02 siaržuk: может быть, кстати

10:19:22 Diver_: haiku/trunk/src/system/libroot/os/find_directory.cpp

10:19:33 Diver_: kSystemDirectories

10:20:02 Diver_: там 3 вида:

#define SYSTEM "system"
#define COMMON "common"
#define NON_PACKAGED "/non-packaged"

10:23:25 siaržuk: а что она определена?

10:23:40 siaržuk: Diver_:

10:23:56 siaržuk: только для common я вижу B_COMMON_DEVELOP_DIRECTORY,

10:25:40 Diver_: static const char *kSystemDirectories[] = {
SYSTEM, // B_SYSTEM_DIRECTORY
SYSTEM, // B_BEOS_SYSTEM_DIRECTORY
SYSTEM "/add-ons",
SYSTEM "/boot",
SYSTEM "/data/fonts",
SYSTEM "/lib",
SYSTEM "/servers",
SYSTEM "/apps",
SYSTEM "/bin",
COMMON "/etc",
SYSTEM "/documentation",
SYSTEM "/preferences",
SYSTEM "/add-ons/Translators",
SYSTEM "/add-ons/media",
SYSTEM "/data/sounds",
SYSTEM "/data",
"develop", <<<--------------- не оно?
SYSTEM "/packages",
"develop/headers",

10:26:17 Diver_: или ты про другое

10:26:45 siaržuk: а какая константа этому соответствует?

10:27:21 Diver_: думаю, что B_SYSTEM_DEVELOP_DIRECTORY

10:27:40 Diver_: которая смотрит на /boot/develop

10:27:56 siaržuk: ну тогда она ....

10:28:03 Diver_: она же единственная без префикса system

10:28:20 siaržuk: надо мой кросс-референц обновить а то в нём нету этого

10:32:21 Зелёновый теперь xa [30]

11:04:17 Ботиха вышел (Replaced by new connection)

11:04:17 Эта комната фильтруется внешним сервисом

11:04:17 michael_s(Atom330) зашел как владелец конференции xa [30]

11:04:17 siaržuk зашел как владелец конференции online [5]

11:04:17 Diver_ зашел как модератор и администратор online [5]

11:04:18 Flаmе зашел как модератор и администратор xa [30]

11:04:18 Alex11223 зашел как постоянный участник online [5]

11:04:18 Зелёновый зашел как модератор и администратор xa [30]

11:04:18 Ботиха зашел как модератор и администратор online [0] (Йа аццкое железко!)

11:04:18 ARM@haiku установил(а) тему: Сайт проекта: http://www.haiku-os.org
Haiku OS R1/alpha 2: http://www.haiku-os.org/get-haiku
Сайт сообщества: http://qube.ru/
BeShare: siarzhuk.dyndns.org
Логи конференции: http://siarzhuk.dyndns.org/haiku-os.logs
ВНИМАНИЕ: Для получения статуса "Участник" перешлите Вашу просьбу модераторам [как приватное сообщение].

11:06:16 Diver_ теперь online [5]

11:12:32 diGer зашел как модератор и администратор online [50]

11:19:03 Flаmе теперь online [50]

11:19:41 Зелёновый теперь online [30]

11:22:40 diGer теперь away [40]

11:24:34 Flаmе теперь away [40] (Автостатус (неактивен))

11:31:19 Flаmе теперь online [50]

11:33:26 diGer теперь online [50]

11:47:13 diGer теперь away [40]

11:47:24 diGer теперь online [50]

11:55:15 Alex11223: чота getline в БСтринг не хочет писать

11:56:12 siaržuk: во наглый какой этот getline

11:56:15 siaržuk: :-D

11:57:24 diGer теперь away [40]

11:57:34 siaržuk: задумайся о физическом смысле ;)

11:58:18 Alex11223: а какой смысл? ну он чота с объектом класса string делает, а про бстринг ничо не знает

11:59:18 siaržuk: ну и зачем тебе БСтринг тогда?

11:59:41 Alex11223: хз

12:00:02 siaržuk: вот и ответь себе на вопрос зачем он тебе

12:00:22 diGer теперь online [50]

12:07:18 Flаmе: http://media.arstechnica.com/reviews/os/zeta-1.0.media/zetanovm.gif
With virtual memory disabled, I get over 18 billion terabytes of potential swap file space! Cool!

12:07:30 Flаmе: :-D

12:08:03 Flаmе: вот оно, секретное оружие

12:13:04 Diver_: это ранняя версия префлета из гайки, который они еще могли сломать пока локализировали

12:13:34 Flаmе: ну это из статьи про зету

12:14:13 Flаmе: там ставилось на 1.2 гига, не хватило места для свопа и он отключился

12:15:07 Diver_: потом они отказались от масштабирующихся боковых значков http://mobile.osnews.com/img/17518/com.png

12:15:53 Flаmе: почему отказались?

12:16:17 Diver_: было криво, медленно и неудобно

12:16:28 diGer вышел

12:16:41 siaržuk: ... уныло и неотигинально.

12:16:44 Diver_: вроде до какой-то версии у них сорцов dano не было и они просто весь софт с бебитса собрали и заменили трэкер

12:16:53 Flаmе: офигеть, там в коммуникаторе есть все что надо, аська, джаббер и гуглотолк

12:17:19 Flаmе: а ирка отдельно почему-то

12:17:50 Diver_: потом они франса ван нипсена заполучили и он там кучу всего переделал - декоратор например его

12:18:47 Diver_: который Refraction написал

12:19:54 Nico-izo зашел как постоянный участник online [15]

12:22:30 Diver_: http://www.osnews.com/img/17518/apps.png

12:22:45 Diver_: http://www.osnews.com/img/17518/mupref.png

12:25:54 Diver_: http://www.osnews.com/img/17518/login.png

12:27:09 Diver_: http://www.varnernet.com/~bryan/files/BeOS_jEdit_02.png

12:27:35 Diver_: http://www.varnernet.com/~bryan/files/BeOS_jEdit_01.png

12:27:41 Alex11223 теперь away [5] (Автостатус (неактивен))

12:29:48 Diver_: жаль, что джава так и не утекла

12:30:13 Flаmе: в смысле, исходники?

12:30:52 Flаmе: а там 1.5 или 1.6 была версия?

12:31:29 Diver_: бинарники 1.4

12:31:49 Flаmе: жаль

12:32:13 Diver_: http://www.youtube.com/watch?v=yVwc-ZSRMwQ

12:32:16 Alex11223 теперь online [5]

12:33:16 Diver_: причем она на удивление шутсро работала, двойная буферизация исключала мерцание виджетов при ресайзе

12:36:04 Diver_: в гайке до сих пор некоторые элементы гуя колбасит при ресайзе/перетаскивании

12:36:28 Nico-izo теперь away [15] (Меня нет тут уже 3 минуты (Ставлю солярку на спарки))

12:36:34 Diver_: а теперь и в семерке тоже))

12:37:06 Flаmе: ну в семерке-то понятно, была ж статья и срывы покровов :)

12:40:02 Diver_: ага http://www.youtube.com/watch?v=ToFgYylqP_U&feature=related

12:40:37 Diver_: во, тормоза какие http://www.youtube.com/watch?v=ay-gqx18UTM&fmt=18

12:42:00 Diver_: This video demonstrates the slowness of the new Windows 7 GUI.
Windows Display Drivers Model used in both Vista and 7 doesn't include the neccesary hardware accelerated 2D functions to make the graphics generated by GDI and GDI+ as fast as in Windows XP.
Microsoft chose software render because they found too difficult to combine the new graphical engine with the old one. If you want to learn more about it read this: http://blogs.msdn.com/directx/archive/2009/05/12/2d-drawing-apis-in-windows.aspx
GDI has dozens of functions: http://msdn.microsoft.com/en-us/library/dd145203%28VS.85%29.aspx
GDI hardware acceleration in Windows 7 using WDDM 1.1 drivers has only these functions hardware accelerated: http://msdn.microsoft.com/en-us/library/dd434692.aspx
WDDM 1.1 drivers makes mandatory this new "partial" GDI hardware acceleration. So any driver which claims to be 1.1 is already accelerating as much as it ever will.
Too bad, the results I got were based on WDDM 1.1 drivers (both from nvidia and Microsoft itself).
The video shows how slow is the services.msc window, and the graphical artifacts it has, but it's not the only one. The file explorer scrolling is also much slower than in XP.
( http://www.youtube.com/watch?v=ToFgYylqP_U )

The example in the video is probably one of the applications where this problem is more easily spotted but there are many others which show the same behavior in a different degrees depending on how they call GDI functions.
Windows 7 has several integrated solutions to circumvent the lack of 2d graphical acceleration...the problem is those solutions require full rewrite of the every single application's gui in order to use the new direct2d and directwrite, including the ones bundled with the os (file explorer, dialog boxes, management windows, etc...) and that's not going to happen in years, not from Microsoft itself, nor from 3rd party developers. I don't see Adobe porting their suite to Direct2D any soon..and anyway, the system will always stay GDI/GDI+ based. I think they probably won't start gui rewriting until the next major Windows version is released..
Meanwhile we will not see any better results in this area over the time other than the ones related with the improvement in cpu speeds.
So this is all we get. Microsoft had to include this partial GDI acceleration, because those functions were way too slow in software mode, but it seems they thought the rest of them were not.....(which is not correct).
About the real world impact. I can clearly see the real world impact of this decision as soon as I boot Windows 7 and start working, but there is people who's not able to see the difference between a game running at 60 fps from the same game running a 30 fps or earing the difference between a 128kb mp3 and a real CD Audio. I guess all depends on how fast you are used to work with your computer, and wether Vista already seemed slow or not for you.
All I can say is, there is a real difference, a difference you can meter, and at least me and some other people are able to feel in every day Windows 7 use.
Probably many people is blinded by the novelty and don't want to accept there are some problems with the new and overrated Microsoft system.

12:43:27 Nico-izo теперь xa [15] (Меня нет тут уже 10 минут (Видимо солярка не встала, пришлось заливать))

12:45:20 Nico-izo теперь online [15]

12:45:20 Flаmе: ой

12:51:06 Flаmе: http://habrastorage.org/storage2/213/ad1/d66/213ad1d6605b114ca2ec30ff015c61d5.png

12:56:40 Зелёновый теперь away [30]

12:59:13 Diver_: http://habrastorage.org/storage/habraeffect/be/cf/becfd2c4c13651c18ef64b1fdb8b3534.png

13:03:22 Flаmе: http://img3.imageshack.us/img3/7646/pic20120110160006.png

13:04:24 Flаmе: жыстокий рамблер

13:05:08 diGer зашел как модератор и администратор online [2]

13:14:59 siaržuk теперь away [5] (Соўгаюся недзе паблізу...)

13:16:40 Зелёновый теперь xa [30]

13:28:50 diGer теперь away [2] (Auto Status (idle))

13:34:59 siaržuk теперь xa [5] (Соўгаюся недзе паблізу...)

13:35:19 siaržuk теперь online [5]

13:36:48 diGer теперь online [2]

13:53:15 Alex11223: интересно что за магические числа 00 00 01 08 и 00 00 00 01 между SPth и собственно самим путем. http://s1.hostingkartinok.com/uploads/images/2012/01/c42a44df42a24f8ea6ed066107df71d3.png В других секциях тоже аналогичное есть

13:55:16 siaržuk: либо два uint32, либо четыре uint16 либо восемь uint8, либо их какая-то комбинация... А во всех секциях SPth одинаковые числа?

13:55:22 siaržuk: SPth - system path?

13:59:10 Alex11223: не одинаковое, на скрине даже разные. видел в конце 00 или 01, других вроде нету

13:59:21 Alex11223: у линков тоже 2 варианта видел

13:59:33 Alex11223: у неймов линков

14:00:17 siaržuk: када рабочего кота покажешь?

14:02:22 Alex11223: ну я хз думаю как читать эти данные. записывать вроде прсото: нашел строку например систем инклюды, пробежался ним всем в проже и записал в конец строки, прочитанной из темплейта. интересно в .прож и мейкфайле секции в одинаковом порядке идут или нет

14:03:46 siaržuk: я бы не закладывался на порядок

14:04:38 siaržuk: я бы распотрошил сначала прож - заполнил массивы стройк именами и путями, а потом профильтровал темплейт заполняя по ходу переменные соответствующими строками

14:06:42 Alex11223: а массивЫ зачем? везде ж по одной строке хватит

14:07:07 diGer теперь away [2] (Auto Status (idle))

14:07:53 Flаmе теперь away [40] (Автостатус (неактивен))

14:07:56 siaržuk: хм... тоже верно - сразу строку и компоновать. ;-)

14:08:07 siaržuk: идею одобряю!

14:08:38 Flаmе теперь online [50]

14:09:02 Alex11223: сразу это когда? при потрошении прожа или потрошить по ходу просмотра темплейта?

14:09:18 siaržuk: при потрошении прожа

14:10:53 Alex11223: теперь бы придумать как его потрошить... чота вроде никаких размеров данных у этих секций нету

14:11:08 siaržuk: я исхожу что задачу для ясности надо делить на понятные народу куски - вот и потрошим сначала прож раскладывая мясо в один тазик, сало в другой, ливер в третий тазик, кровь в четвёртый. А потом берём всё и идем на кухню свежину жарить да колбасу крутить.

14:11:28 siaržuk: каких секций?

14:12:02 Alex11223: точнее у линков вроде есть, а вот SPth по крайней мере не видно

14:12:15 siaržuk: кстати да

14:15:04 siaržuk: ну попробуй принять размер SPth фиксированным - 0х464-0х192 = 0х2d2

14:15:54 Alex11223: а чего это за размер?оО

14:15:55 siaržuk: а Link - это либки?

14:16:03 Alex11223: ага

14:16:21 siaržuk: смотри смещение секций на своих скриншотах

14:16:56 diGer теперь online [2]

14:17:54 Alex11223: <br>&nbsp;а 0х откуда? на правом в десятичном же

14:18:18 siaržuk: кстати на левом - как раз 0х108 размер путя, а на правом ...ээээ мухлёвщик!

14:19:04 siaržuk: ну так и к чему вопросы - второй байт - ёто и есть размер секции!

14:19:33 Nico-izo теперь away [15] (Меня нет тут уже 3 минуты (Ставлю солярку на спарки))

14:19:48 Flаmе теперь away [40] (Автостатус (неактивен))

14:20:41 Nico-izo теперь online [15]

14:21:52 Alex11223: и даже если SPth размер фиксированный, хотя вообще-то не весь нужен, а каждого отдельного чтоб знать до куда читать путь, то еще есть PPth (типа усерские вроде), и их точно разное кол-во может быть. кстати, один PPth {project} всегда есть

14:22:27 siaržuk: это видимо директория самого проекта

14:24:38 knorr зашел как постоянный участник online [1]

14:25:12 siaržuk: можешь заменить её на "./"

14:29:48 Flаmе теперь xa [30] (Автостатус (неактивен))

14:31:30 Nico-izo теперь away [15] (Меня нет тут уже 3 минуты (Ставлю солярку на спарки))

14:32:38 Nico-izo теперь online [15]

14:36:00 Alex11223: заменить-то не проблема, проблема как прочитать...

14:36:10 siaržuk: кого прочитать?

14:36:29 Alex11223: у филла (это сорсы) размер чота тоже не особо полезен, ибо после имени еще что-то есть

14:36:39 siaržuk: покажи

14:37:25 Alex11223: http://s1.hostingkartinok.com/uploads/images/2012/01/085f6e526e64ea4cc330b6656a29234e.png

14:38:26 Nico-izo теперь away [15] (Меня нет тут уже 3 минуты (Ставлю солярку на спарки))

14:38:38 Flаmе теперь online [50]

14:39:24 Nico-izo теперь online [15]

14:39:30 siaržuk: ну он-же сиоставной как и в Link - сначала миме-тип а потом имя

14:39:44 Alex11223: найти вроде бы не сложно: нашел SPth/PPth/Fill/Link, нашел ближайщий Name, отступил магические 8 байт и читай. а вот до куда...

14:40:28 Alex11223: дык это понятно, вот и говорю, что имя не на 89-ом байте в данном случае кончается т.к. после него еще какая-то секция вложена

14:40:47 Flаmе: http://egorfine.com/ru/articles/time/

14:41:14 Зелёновый теперь online [30]

14:47:44 siaržuk: дык секции Mime, Name похоже вложенные в Fill

14:47:54 siaržuk: и размер их тебе известен

14:49:18 Зелёновый вышел (QIP Infium: Спокойное общение)

14:50:31 siaržuk: у Name это 12 - как раз хватает до следующего SrFl

14:51:50 Alex11223: 12 это откуда?

14:54:05 Alex11223: хотя вроде и правда известен, только не 12, а 14 (второе уинт32 после нейм) и сами нужные мне данные занимаются 14-1=13 байт

14:54:15 Alex11223: занимают*

14:55:07 siaržuk: сразу после идишки 0х12

14:56:50 Flаmе теперь away [40] (Автостатус (неактивен))

14:57:13 Flаmе теперь online [50]

14:57:33 Alex11223: а наф там 2 числа, первое из которых на 4 больше и оба указывают на размер блока после себя оО ну ок, размер для линка значит известен :)

14:58:17 Alex11223: тьфу

14:58:19 Alex11223: для филла

14:58:28 Alex11223: хотя для линка аналогично вроде

14:58:42 siaržuk: похоже

14:58:46 Alex11223: но там и сам линк кончается на нейме

14:58:50 siaržuk: х.з - зачем-то надо

14:59:22 siaržuk: а Филл длинее? SrFl тоже к нему относится?

15:00:31 siaržuk: SrFl - похоже хидер какой-то - депенденси что-ли?

15:04:09 Alex11223: да, к филлу.... но вроде есть филл, у которого болье одного срФл

15:04:42 siaržuk: ну это если несколько инклудов в этом сорце. ;)

15:05:08 siaržuk: ну мейкфайл-енжин сам депендеси считает, так что тебе можно игнорировать эти секции

15:05:32 Alex11223: харофый мейкфейл :)

15:06:04 siaržuk: е́нжин, е́нжин.....

15:06:37 siaržuk напевает "́е́-е-е-нжин з ба́-а-а-ажин"

15:07:22 Alex11223: ну чо, тогда как-то так что ли: нашел Fill, прочитал в строку весь Филл, нашел первый нейм, взял оттуда файл. А как бы искать сами Fillы/Линки и т.д. в проже искать

15:08:11 siaržuk: я ж тебе уже который день талдычу - все секции имеют заголовок, состоящий из id и размера секции

15:08:35 siaržuk: прочитал одну - за ней читаешь заголовок следующей

15:08:41 siaržuk: и т.д.

15:08:47 Flаmе теперь away [40] (Автостатус (неактивен))

15:09:16 siaržuk: и не нужно ничего искать - неинтересные секции пропускаешь - интересные потрошишь

15:09:39 Nico-izo теперь away [15] (Меня нет тут уже 3 минуты (Ставлю солярку на спарки))

15:09:49 siaržuk: одна за другой

15:09:50 Nico-izo теперь online [15]

15:09:52 Flаmе теперь online [50]

15:11:48 Alex11223: а, угу, я ж их читал уже так в первой тулзе. однако SPth, PPth и там где-то рядом имя аппликации вроде так не очень получается

15:13:00 siaržuk: а потому как читать надо рекурсивно - заглядывая внутрь секций и при необходимости потроша их также как и в первой версии твоей проги, но уже на уровне даных секции

15:15:54 siaržuk: я бы на твоем месты вытащил первую версию проги и выводил дамп первых 16 байтов каждой секции на первом уровне, потом прикинул какие секции могут быть интересны и напускал бы на них аналогичный разбор - так бы и добрался до уровней вложенности где сидят имена

15:21:18 siaržuk: Flame: краткое изложение основ управления проектами сдобренное личным мнением чувака, которое никого не интересует.

15:21:57 siaržuk: кодинг - вполне себе индустрия, проблема лежит в слабой унифицированности строительных блоков ....

15:22:46 siaržuk: построить избу из кругляка несколько сложнее в "творческом" плане нежели из кирпича или вообще из панелей.

15:23:53 siaržuk: а дав кодеру в зубы инструмент для клепания форм и четкое техзадание - вполне себе можно выдерживать ритм конвейера.

15:24:48 Flаmе теперь away [40] (Автостатус (неактивен))

15:25:49 Flаmе теперь online [50]

15:25:59 siaržuk: в какой-то книжке по дельфям была хорошая аналогия с изготовлением мебели - раньше каждый комодик требовал времени и усилий, а сейчас когда есть ИКЕЯ - даже имбецил сможет сам собрать комодик....

15:26:57 Alex11223: а рекурсивно читать это как?:) я чота никогда рекурсию не любил :( SPth и PPth на первом же уровне вложения находятся в той большой секции, что самая первая после миде

15:27:22 siaržuk: Рекурсия - божественна, нечистивец!

15:27:45 siaržuk: MIDE и сама по себе секция если ты ещё не догадался. ;)

15:27:53 Alex11223: ну миде это весь прож

15:28:15 Alex11223: дык Рекурсия — удел Богов, человеку свойственны итерации же :)

15:28:23 Flаmе: siaržuk: ну так весь вопрос, как всегда, в сложности конечного изделия :)

15:28:55 siaržuk: а 4 байта после ид-шки MIDE и есть (размер проекта - 8) что пытливый ум должно было навести на некоторые мысли

15:29:02 Flаmе: и наличии инструментов

15:29:41 siaržuk: Flаmе: иными словами степень детализации результата

15:29:51 Flаmе: угу

15:29:58 Alex11223: ну дык и навели же. gProjLength = length + 8 есть в той первой функции и проверка, что оно не больше файла :)

15:30:11 siaržuk: хотя это уже настолько высокий уровень человеческой деятельности - что тут пока вряд-ли будет прорыв

15:30:21 siaržuk: Alex11223: gut

15:31:47 siaržuk: Alex11223: грубо говоря функция в которой switch по ид-шкам - на каждой ид-шке с потрохами вызов этой-же функции самой себя - где-то так.

15:34:30 Nico-izo теперь away [15] (Меня нет тут уже 3 минуты (Ставлю солярку на спарки))

15:35:42 Alex11223: а потроха идшек чего делают?

15:36:38 siaržuk: ид-шки с потрохами - т.е. те, которые содержат интересующие тебя подсекции

15:37:40 Nico-izo теперь online [15]

15:38:04 Alex11223: чота не понял :( кстати, между SPth и собственно путем не 8, а 9 байт

15:38:16 Flаmе теперь away [40] (Автостатус (неактивен))

15:38:18 siaržuk: покажи

15:39:20 Alex11223: http://s1.hostingkartinok.com/uploads/images/2012/01/79fb3fa9f3eefd6a8c06bb20808c5ba1.png

15:40:00 siaržuk: значит два унит32 и бул.

15:40:31 siaržuk: но они тебя волновать не должны - скипаешь и всё.

15:44:13 Alex11223: первый уинт32 указывает на следующую секцию, это хорошо. но между путем и след секцией куча 00000000000...

15:44:51 siaržuk: и что с того? путь фиксированной длины, добивается нулями

15:46:04 siaržuk: да хоть-бы и мусором - главное чтобы имелся терминирующий нуль

15:47:03 Alex11223: круто, не надо самому \0 добавлять :)

15:47:12 siaržuk: дык

15:47:45 Flаmе теперь online [50]

15:49:43 Alex11223: кстати, про терминирующие нули, а
char* name = new char[4];
        gProjFile.read(name, 4);

        if (strcmp(name, "MIDE") != 0 ...
работает только потому что мне пока везет или strcmp такой умный?

15:50:52 siaržuk: потому что MIDE заканчивается нулём и не важно чем заканчивается name

15:51:31 siaržuk: хотя за последним байтом name mowet byt# hto ugodno - äto da.

15:55:32 siaržuk: рекурсия это примерно вот так:
struct hdr {
uint32 id;
uint32 size;
};

void parse(hdr* p)
{
switch(p->id) {
case 'MIDE':
case 'Root':
break;
case 'SPth':
parse_path(p++);
return;
default:
return;
}

uint32 size = p->size;
p++;
for (size_t off = 0; off < size; off += p->size) {
parse(p);
}
}

15:56:12 Flаmе теперь away [40] (Автостатус (неактивен))

16:05:19 Nico-izo теперь away [15] (Меня нет тут уже 3 минуты (Ставлю солярку на спарки))

16:06:12 Flаmе теперь xa [30] (Автостатус (неактивен))

16:10:53 Nico-izo теперь online [15]

16:11:03 Alex11223: а p++ это куда? массив этих hdr что ли? чот все равно не понял :( ну мне вроде рекурсия не очень нужна же, ибо уровней вложенности немного...Pth'ы в первой секции лежат без вложений себя куда-либо, филлы и линки тоже за первой секцией и там только один нейм интерисует

16:11:34 siaržuk: не хочешь - заставим © СА

16:12:27 siaržuk: p++ - это смещение на длину sizeof типа на который указывает указатель. Т.е. здесь буквально на первый байт после заголовка

16:13:30 Alex11223: чот не пойму что тут лежит, вроде чота похоже на чота нужное: http://s1.hostingkartinok.com/uploads/images/2012/01/6d1a89c9108eb0b5630a22633df69daf.png

16:14:27 siaržuk: это секция с настройками компилера - пропускай её

16:19:25 Nico-izo теперь away [15] (Меня нет тут уже 3 минуты (Ставлю солярку на спарки))

16:19:47 Nico-izo теперь online [15]

16:22:49 Nico-izo теперь away [15] (Меня нет тут уже 3 минуты (Ставлю солярку на спарки))

16:24:15 Nico-izo теперь online [15]

16:25:03 siaržuk: Alex11223: а ты всё так-же виртуальный секс предпочитаешь?

16:26:00 Alex11223: ну...я пробовал один раз и оно работало, долг тестера на рИальном железе выполнил :D

16:26:23 siaržuk: а в чём загвоздка была?

16:26:49 Alex11223: ну...винда классная ж ><

16:27:29 Nico-izo теперь away [15] (Меня нет тут уже 3 минуты (Ставлю солярку на спарки))

16:27:43 siaržuk: винда обыденная. а гайка чоткая.

16:33:00 Flаmе теперь online [50]

16:34:29 Nico-izo теперь xa [15] (Меня нет тут уже 10 минут (Видимо солярка не встала, пришлось заливать))

16:45:35 Diver_: у него или ACHI/IDE или C1E вешала гайку при загрузке

16:45:50 siaržuk: Ц1Е?

16:45:54 Diver_: да

16:45:59 siaržuk: что это?

16:46:19 Diver_: Enhanced Halt State или C1E

16:46:23 Diver_: http://ru.wikipedia.org/wiki/SpeedStep

16:46:34 siaržuk: и как обошли?

16:46:37 Flаmе: о как

16:46:41 Diver_: C1E — одна из функций энергосбережения процессоров серии 570J (ядро Prescott степпинга E0). Состояние C1E позволяет снизить напряжение при переводе процессора в состояние HALT, применяемое при низком уровне загрузки системы. При этом снижается уровень энергопотребления системы при низкой загрузке процессора.

16:46:42 Flаmе: да

16:46:50 Diver_: ну в биосе отрубили

16:46:52 Flаmе: отключили в биосе?

16:46:55 Flаmе: :)

16:47:27 Flаmе: блин, это никуда не годится

16:47:37 siaržuk: а кому легко?

16:48:06 Flаmе: а у каких процов не пашет?

16:48:23 Diver_: на амд вроде

16:48:35 Diver_: http://dev.haiku-os.org/ticket/3999

16:48:36 Flаmе: а, ну тогда полегче

16:48:46 Flаmе: хотя все равно не айс

16:49:01 Diver_: Boot hangs at ohci ownership change when C1E is enabled

16:49:13 Diver_: угу

16:49:21 Flаmе: охци это не юсб случаем?

16:52:14 Diver_: да

16:54:10 Flаmе: вот блин ненадежное железо-то

16:55:10 Nico-izo теперь online [15]

17:10:11 diGer теперь away [2] (Auto Status (idle))

17:12:13 Diver_ теперь away [5] (Auto Status (idle))

17:18:06 Flаmе: http://www.youtube.com/watch?v=wzYu1NPxGMc

17:18:07 siaržuk: Alex11223: рекурсивно делай, рекурсивно. ;)

17:18:31 Alex11223: :(

17:19:17 Alex11223: а чо ид uint32 а не строка?

17:19:41 siaržuk: а где ты там видишь строки?

17:20:43 Alex11223: дык хз... читается ж строка из файла, а как оно уинтом32 стало?

17:22:58 siaržuk: где ты видишь строку? там четыре байта

17:23:42 siaržuk: ты мои комменты Пете читал в ленте таска?

17:23:55 Alex11223: читал 3 раза :)

17:24:04 siaržuk: а понял?

17:24:39 Alex11223: хз

17:25:03 siaržuk: хи-хикс

17:26:24 siaržuk: читай как uint32 и конверть из big endian

17:31:48 Alex11223: осталось понять что делает этот страшный цикл for (size_t off = 0; off < size; off += p->size) {
parse(p); :)

17:32:13 Diver_ теперь xa [5] (Auto Status (idle))

17:32:32 siaržuk: скачет по подсекциям

17:34:16 Гость 1 зашел как постоянный участник online [50]

17:34:59 Diver_ теперь online [5]

17:35:43 diGer теперь online [2]

17:37:48 Alex11223: чота не понял как он скачет =\ А 'Root' это чего? Для самого первого входа когда на начале файла?

17:38:24 siaržuk: Root - это псевдо-секция содержащая под-секции

17:38:37 siaržuk: это-ж пример

17:39:29 Alex11223: ну дык пример ж тоже надо понять :)

17:40:12 siaržuk: если секция содержит под-секции - перебираем их, если нет - либо обрабатываем данные секции либо выходим если секция нам не интересна

17:41:07 Alex11223: ну дык я вот и не пойму как определяется, что она содержит под-секции

17:42:39 siaržuk: опытным путём

17:44:19 Nico-izo теперь away [15] (Меня нет тут уже 3 минуты (Ставлю солярку на спарки))

17:45:00 Diver_ теперь away [5] (Auto Status (idle))

17:46:16 siaržuk вышел

17:46:41 diGer теперь away [2] (Auto Status (idle))

17:47:08 Diver_ теперь online [5]

17:49:34 knorr вышел

17:50:01 Nico-izo теперь online [15]

17:51:03 Diver_: C1E aka:

C1E Enhanced Halt State
C1E Support
CPU Enhanced Halt (C1E)
Enhanced C1 (C1E)
Enhanced C1 Control
Enhanced Halt (C1E)
Intel(R) C-STATE Technology

17:51:33 Flаmе теперь away [40] (Автостатус (неактивен))

17:52:27 Flаmе теперь online [50]

17:57:19 Flаmе: http://clip2net.com/clip/m63735/1326187986-feature_icon-163kb.png

17:57:33 Flаmе: Diver_: это все одно и то же?

17:58:43 Diver_: варианты написания в различных биосах

17:59:24 Flаmе: а, ну да

17:59:41 Flаmе: надо в хайку набор таких иконок сделать :)

18:00:45 diGer теперь online [2]

18:13:52 Nico-izo теперь away [15] (Меня нет тут уже 3 минуты (Ставлю солярку на спарки))

18:16:13 Nico-izo теперь online [15]

18:19:15 Nico-izo теперь away [15] (Меня нет тут уже 3 минуты (Ставлю солярку на спарки))

18:24:16 totish зашел как постоянный участник online [50]

18:26:15 Nico-izo теперь xa [15] (Меня нет тут уже 10 минут (Видимо солярка не встала, пришлось заливать))

18:35:27 totish теперь away [40] (Auto Status (idle))

18:37:18 Diver_ теперь away [5] (Auto Status (idle))

18:37:32 siaržuk зашел как владелец конференции online [5]

18:37:32 Diver_ теперь online [5]

18:45:10 totish теперь online [50]

18:45:13 totish вышел

19:04:33 Nico-izo теперь online [15]

19:07:32 Alex11223 теперь away [5] (Автостатус (неактивен))

19:15:20 Alex11223 теперь online [5]

19:19:42 michael_s(Atom330) вышел

19:20:00 michael_s(Atom330) зашел как владелец конференции xa [30]

19:23:47 Гость 1 теперь away [50] (Автостатус (неактивен))

19:25:19 Alex11223 теперь away [5] (Автостатус (неактивен))

19:27:45 Flаmе: Ботиха: я не согласен покупать новый молоток каждый раз, когда кто-то изобретает новые гвозди

19:28:00 Ботиха: Flаmе: айда, а лодка есть?

19:28:04 Alex11223 теперь online [5]

19:35:44 Flаmе теперь away [40] (Автостатус (неактивен))

19:36:24 Diver_ теперь away [5] (Auto Status (idle))

19:39:54 Flаmе теперь online [50]

19:43:47 Гость 1 теперь xa [50] (Автостатус (неактивен))

19:52:26 Diver_ теперь online [5]

20:02:07 Ботиха: RSS: Новости для http://cia.vc/stats/project/Haiku/.rss Haiku
• add in a missing mesa header, formats.h; No Haiku code change.
Commit by kallisti5 on master :: rhrev43646 haiku/: (link) add in a missing mesa header, formats.h; No Haiku code change.
• radeon_hd: Fix accelerant regression in 4e9e029 * After 4e9e029, radeon_hd…
Commit by kallisti5 on master :: rhrev43647 haiku/: (link) radeon_hd: Fix accelerant regression in 4e9e029After 4e9e029, radeon_hd functionality became erratic.I think failing to lock the encoder bios scratch on encoder changes was causing it.

20:19:29 siaržuk: Alex11223: а меж тем осталось 5 дней и 12 часов. ;)

20:19:39 Flаmе: http://cs301401.vkontakte.ru/u226973/143686298/x_e1f22281.jpg

20:20:32 Alex11223: ну я чота над рекурсией туплю =\ запись мейкфайла вроде написал пока

20:21:00 siaržuk: Flаmе: ouii-i-i--i-i-i-i-i-!

20:21:10 Flаmе: :-D

20:22:20 siaržuk: Alex11223: нехрен тупить - берись за работу!

20:22:42 Alex11223: дак шоб браться надо знать как :)

20:24:28 siaržuk: я ж тебе примел написал - для инженерной работы

20:25:54 Flаmе: http://cs5579.vkontakte.ru/u226973/144727247/x_f9c682ad.jpg

20:29:27 siaržuk: Alex11223: так а что непонятно с рекурсией?

20:30:10 Alex11223: ну рекурсия-то вроде понятно, что рекурсия — это рекурсия, а вот пример чота я не вкурил =\ по крайней мере р++ и цикл после него

20:31:15 Flаmе: http://cs10378.vkontakte.ru/u226973/143686298/x_3360ab14.jpg

20:32:10 siaržuk: p указывает на хидер секции - ферштей?

20:32:24 Alex11223: чо секции?оО

20:32:31 Diver_ теперь away [5] (Auto Status (idle))

20:33:26 siaržuk: хидер, блядь, секции, нахуй, мы, бля, про эти, бля, секции, бля, уже третий, бля, день, нахуй, дискутируем....

20:33:27 Ботиха: siaržuk: Фильтруем базар!

20:34:12 siaržuk: короче сложение указателя с целым числом перемещает уклазатель на соответствующее количество позиций в "массиве"

20:34:52 siaržuk: т.е. еслу у тебя указатель на структуру из двух uint32 то добавление единички передвинет указатель на sizeof(uint32) * 2. ферштей?

20:35:16 Alex11223: ну дык это-то понятно. но массив откуда?

20:35:28 siaržuk: ниоткуда

20:35:33 siaržuk: он у тебя в голове

20:36:13 siaržuk: указатель на uint8 передвинется на один байт, на uint16 на два байта, уинт64 - на 8 байт ....

20:36:37 siaržuk: а если указатель на void то компилер пошлёт тебя нафуй за такие хитрики

20:36:39 Alex11223: да понятно на сколько указатель передвинется

20:36:55 siaržuk: а чего тогда спрашиваешь про p++?

20:36:57 Alex11223: только вот где он передвигается оО

20:37:56 siaržuk: в адресном, мляць, пространстве твоей программы.... сюрприз?

20:38:14 siaržuk: не тупи - берись за дело!

20:38:23 siaržuk: _poke Alex11223

20:38:24 Ботиха попрыгала с бубном вокруг Alex11223

20:38:29 siaržuk: _bomb Alex11223

20:38:30 Ботиха дала бомбу Alex11223 с проводами черный, зеленый, фиолетовый, голубой. Время деактивации 45 сек.

20:38:34 Flаmе: :-D

20:38:37 Alex11223: точнее откуда возьмутся данные в этом массиве, в котором указатель двигается

20:38:54 siaržuk: Flаmе: он не понял. ;)

20:39:12 Alex11223: не по чужому же адресному пространтсву он двигается :)

20:39:15 Ботиха взорвала Alex11223

20:39:38 siaržuk: так вычитай из файла их

20:39:50 siaržuk: можно даже целиком весь файл. ;)

20:40:06 siaržuk: не думаю что там будет больше мегабайта хоть когда

20:40:19 siaržuk: _poke Alex11223

20:40:19 Ботиха дала Alex11223... просто дала... :-"

20:40:37 Alex11223: дык вроде изначально в том и была проблема как вычитать. ну или теперь как найти то место по одному хидеру с идом и размером

20:41:12 siaržuk: Diver_: Alex11223 разбудил Акселя - тот собрался опять мейл пилить. ;-)

20:41:21 Diver_ теперь online [5]

20:41:36 Flаmе: гыгы

20:41:37 Alex11223: это типа Ктулху?

20:41:41 siaržuk: проблемы вычитать файл в память?

20:41:52 Flаmе: ну Дайвер вчера грил, что тот пилит имап

20:42:07 Alex11223: файл-то не проблема, стотыщпицот раз уже вычитывал. а вот найти в нем эти секции

20:42:09 siaržuk: измельчал аксель

20:42:39 siaržuk: ты что там бухаешь? в иобед уже это спрашивал-же, дядько

20:43:26 siaržuk: секция за секцией идёт - и некоторые секции бывают вложенными - твоя задача их перебрать одну за другой

20:44:33 Alex11223: дык вроде этот самый пример с рекурсией был ключом к решению проблемы чтения\нахождения нужных секцией или хотя бы даже всех секций включая все вложения. а оно чот само хочет массив со всеми секциями

20:44:48 siaržuk: какой массив?

20:45:05 Alex11223: по которому указатель путешествует :D

20:45:24 siaržuk: это у тебя в голове массив

20:45:45 siaržuk: а в функцию передаётся указатель на заголовок секции

20:46:00 siaržuk: туда даже нузль можно передать - где там какой массив?

20:46:08 siaržuk: что такое указатель?

20:46:26 Alex11223: адрес в памяти :)

20:46:32 siaržuk теперь online [5]

20:46:48 siaržuk: что такое адрес?

20:47:01 Alex11223: 4 байта

20:47:08 siaržuk: что он из себя физически представляет?

20:47:17 siaržuk: каков его физический смысл?

20:47:26 Flаmе: ну пусть что-то делает, если ничего не делать, то все забывается

20:47:50 siaržuk: Alex11223: шнель-шнель.... отвечать! бистро!

20:47:54 Alex11223: э...

20:48:02 Alex11223: помощь зала!

20:48:16 siaržuk разворачивает пулемёт в зал...

20:48:35 siaržuk: *зал молчит

20:48:46 siaržuk поворачивается обратно

20:48:54 siaržuk: Alex11223: na und?

20:49:10 siaržuk: что такое адрес в памято?

20:49:11 Alex11223: ну адрес...э...не тыкай в меня этим! это номер ячейки в памяти

20:49:40 siaržuk: т.е. некое смещение относительно начала сегмента?

20:49:52 siaržuk: а сегмент 4 гига

20:49:56 Alex11223: да :)

20:51:14 siaržuk: хорошо - чем отличается указатели char*, uint32*, void* с точки зрения этой модели смещения??

20:51:56 siaržuk: Alex11223: отвечать!

20:52:29 Flаmе теперь away [40] (Автостатус (неактивен))

20:53:39 Alex11223: на сколько сдвигать

20:54:05 Alex11223: чар на 1 уинт32 на 4 воид сворачивает вселенную

20:54:08 siaržuk: кого сдвигать? ничего не двигается пока - чем они отличаются физически в памяти?

20:54:38 Alex11223: на сколько ячеек указывают

20:55:19 siaržuk: нет никаких ячеек есть сплошное адресное пространство от 0х00000000 до 0хFFFFFFFF

20:56:27 siaržuk: где существуют char, void и уинт32? в компиляторе, линкере, в памяти, в процессоре, где?

20:56:50 Alex11223: в памяти?

20:57:16 siaržuk: почему так считаешь?

20:57:55 Alex11223: ну...а где ж еще. остальные вроде другими задачами занимаются, а не хранением чего-либо

20:58:35 siaržuk: кто оперирует этими типами?

20:59:00 Alex11223: процессор

21:00:12 siaržuk: почему так считаешь что процессор оперирует char, uint32, void? a твоими struct-ами on тоже в курсе? пиздец гении с интеля всё предусмотрели что у тебя в голове творится?

21:00:14 Ботиха: siaržuk: Фильтруем базар!

21:00:45 siaržuk: на каком уровне существуют char, uint32, void?

21:00:58 Nico-izo теперь away [15] (Меня нет тут уже 3 минуты (Ставлю солярку на спарки))

21:01:07 Alex11223: э...высоком :)

21:01:27 siaržuk: да и как процессор оперирует паскалевскими типами, жабовскими , а ЦСС-ные стили он тоже в курсе? Какой мощный процессор, мля

21:02:27 Flаmе теперь xa [30] (Автостатус (неактивен))

21:03:03 siaržuk: повторяю вопрос - кто оперирует char-ами, уинт-ами и воидами?

21:03:10 Alex11223: компилятор

21:03:19 siaržuk: о, теплее

21:03:31 siaržuk: а с чем работает процессор? ;)

21:04:05 Alex11223: с циферками разными непонятными человеку, машинным кодом называются вроде :)

21:04:19 siaržuk: а памятьэ у него как представлена?

21:04:49 Diver_ теперь away [5] (Auto Status (idle))

21:04:55 Alex11223: тоже в виде чисел от 0х00000000 до 0хFFFFFFFF?

21:05:05 siaržuk: угу

21:05:53 siaržuk: теперь вопрос какая разница для процессора что адрес 0x12345678 указывает на char, uint32 или eщё на что?

21:06:50 Alex11223: ну видимо если char, то возьмет первый байт по этому адресу, если уинт32, то четыре

21:07:07 siaržuk: кто возьмэт?

21:07:57 Nico-izo теперь xa [15] (Меня нет тут уже 10 минут (Видимо солярка не встала, пришлось заливать))

21:08:24 Alex11223: тот, кто у процессора его попросил)

21:08:25 siaržuk: проц оперирует байтами, словами, двойными словами

21:09:01 siaržuk: мы разговариваем о работе проца - всё остальное идёт строем за горизонт нафуй

21:09:18 siaržuk: что такое адрес?

21:10:13 Alex11223: смещение

21:10:54 siaržuk: каким образом смещение определяет характер данных ?

21:11:19 siaržuk: ... которые по нему находятся

21:13:20 siaržuk: ню?

21:13:49 Alex11223: э...

21:14:06 siaržuk: я тебя послал по смещению 0x32146734 - что ты можешь сказать по этому поводу и что ты можешь оттуда извлечь?

21:14:56 Alex11223: ну какой тип мне сказали извлечь, столько байтов и извлеку

21:15:37 siaržuk: ты 32-ухбитный процессор - какие типы ты можешь извлечь по этому смещению?

21:16:12 siaržuk: _poke Alex11223

21:16:13 Ботиха тыкает Alex11223 со словами "купи мороженного, гадюка!"

21:16:30 Alex11223: хз. а какое отношение имеет битность процессора к смещению?)

21:16:41 siaržuk: прямое

21:16:52 Alex11223: ну видимо до 4 байт

21:17:11 siaržuk: угу

21:17:16 Flаmе теперь online [50]

21:17:37 siaržuk: ну и найди где тут char, uint32 или void ....

21:17:39 siaržuk: время пошло

21:18:14 siaržuk: или ешё какой struct, Bolean или прочий костыль для быдлокодеров

21:18:49 siaržuk: _poke Alex11223

21:18:49 Ботиха предложила Alex11223 козявку :-[

21:18:49 Flаmе: о какая стройподготовка :-D

21:19:06 siaržuk: _poke Flаmе

21:19:06 Ботиха дала Flаmе клубничного йаду

21:19:12 siaržuk: _bomb Flаmе

21:19:12 Ботиха дала бомбу Flаmе с проводами синий, красный, черный, голубой. Время деактивации 45 сек.

21:19:12 Flаmе: ОМНОМНОМ

21:19:20 Flаmе: красный

21:19:21 Ботиха: Flаmе: Ты ошибся! Правильный провод черный

21:19:31 Flаmе: блин

21:19:43 siaržuk: ну не взорвала-же

21:19:54 siaržuk: _poke Alex11223

21:19:54 Ботиха предложила Alex11223 козявку :-[

21:19:59 Alex11223: я ни умею извлекать, я плохой процессор :(

21:20:01 Flаmе: близко стояла %)

21:20:38 Flаmе: а разве не от команды зависит то, что получает проц?

21:20:49 siaržuk: от команды

21:21:03 siaržuk: процессор оперирует смещениями - ему похер что там себе компилер думает

21:21:18 Flаmе: хотя я давно не читал списки команд, авось уже что-то понапридумывали

21:21:24 siaržuk: так вот твои указатели - это просто смещения в адреснопм пространстве

21:21:32 Flаmе: хотели даже какой-то процессор специально для явы делать

21:22:13 siaržuk: а указателями на char, uint32, void их делает компилятор - так ему легче дебилам типа нас объяснять какие операции им должно програмить....

21:23:14 siaržuk: Т.е. это компилятор програмит проц таким образом, чтобы указатель при его инкрементировании сместился на нужное количество байт

21:23:47 siaržuk: т.е. абсолютно пофик на что указывает hdr* p

21:24:23 siaržuk: по этому адресу нет никакой структуры, никаких ячеек, никаких коробочек и прочих абстракций - там тупо последовательность байтов

21:24:49 Diver_ теперь xa [5] (Auto Status (idle))

21:24:54 siaržuk: hdr* только намёк тебе что там может находиться нечто структурированное как hdr

21:25:46 siaržuk: struct - это просто маска, что накладывается на сырые байты чтобы легче отобразить поля в структурированном виде

21:26:47 siaržuk: ты вычитал весь файлец в память и наложил маску загиоловка на начало этого блока данных.

21:27:15 Flаmе теперь away [40] (Автостатус (неактивен))

21:27:48 siaržuk: просто чтобы обратиться к первым 4 байтам как к uint32 а не дюкаться с байтиками склеивая их в четырёхбайтовую переменную

21:28:56 siaržuk: точно также ты можешь указать hdr* на первый байт, второй, третий, седьмой - там всегда будет струйтурированные данные в виде заголовка .... но в полях уже будет мусор

21:29:33 siaržuk: и абсолютно до дупы куда ты приложил эту маску - ты можешь обращаться с этим указателем как данными типа hdr

21:29:54 siaržuk: нету там никакого массива и никаких структур

21:30:01 siaržuk: там только байты

21:30:11 siaržuk: их структурирует компилятор

21:30:49 siaržuk: поэтому утверждение что parse принимает массив неверно

21:31:01 Flаmе теперь online [50]

21:31:03 siaržuk: она принимает смещение в памяти ...

21:31:08 Alex11223: ну дык это понятно, но ведь чтобы все было хорошо там все-таки должен быть не мусор, а хидеры из .прож файла друг за другом

21:31:20 Alex11223: данные хидеров*

21:31:28 siaržuk: а для этого ты должен корректно этот указатель двигать

21:35:00 siaržuk: ты вичитал файлец в память и передал эти данные с нулевиого смещения в parse - parse глянула по ид-шке и решила что ей делать: а) дерибанить вложенные секции; б) обрабатывать данные секции; ц) игнорировать данные секции;

21:35:13 siaržuk: операция определяется кодом ид-шки секции

21:36:33 siaržuk: для серибана вложенных секций сдвигаешь указатель на начало заголовка секции и скармливаешь его рекурсивно в parse

21:37:25 siaržuk: для данных сдвигаешь указатель заголовка на данные и скармливаешь его функции обработчику данных.

21:37:43 siaržuk: для игнорирования просто возвращаешься из функции без обработки

21:38:07 siaržuk: _poke Alex11223

21:38:08 Ботиха потыкала палочкой Alex11223 в глаз...

21:39:04 siaržuk: ферштей?

21:40:52 Flаmе теперь away [40] (Автостатус (неактивен))

21:40:53 Alex11223: хз, надеюсь :)

21:41:34 siaržuk: тогда за работу!

21:41:36 siaržuk: :)

21:42:09 siaržuk: кота покажи текущего

21:43:04 Alex11223: а обработчик данных должен же обработать все свои данные, ибо они вроде друг за другом или только тот, что указали ему?

21:43:39 siaržuk: обработчик жрот данные только свей секции

21:43:44 siaržuk: *своей

21:43:51 siaržuk: в том и смысл

21:45:03 Alex11223: залил кота

21:45:47 siaržuk: скорее всего тебе придется добавить в список параметров parse указатель и на заголовок parent-секции. чтобы знать к чему относятся например Name - к Link или к Fil1. ;)

21:46:45 diGer вышел

21:48:18 Alex11223: дык...а разве в функцию данных не должен весь Link даваться, а не только его нейм?

21:48:45 siaržuk: 
char* gSPthString;
char* gPPthString;
char* gFillString;
char* gLinkString;

тут будет мусор

21:49:47 siaržuk: либо BString - ами объяви и пердоль под хвост им каждое новое вхождение при потрошении проекта. Либо какими std::string-ами если такой умный

21:50:10 Alex11223: ну понятно что пока будет. я чота думал там при чтении данных создавать через нью нужного размера строку, но чота хрень какая-то, видимо обычный стринг тут нужен

21:50:49 Flаmе теперь xa [30] (Автостатус (неактивен))

21:51:16 siaržuk: достаточно "parent" указателя на родительскую секцию которая включает обрабатываемую секцию - это позволит по ид-шке парент-секции определить куда Name текущей секции нужно приклеивать - к либам или к сорцам

21:52:06 siaržuk: проще использовать BString или std::string - не нужно заботиться о размере выделяемой памяти - хрен знает сколько нужно пока не прочитаешь весь проект

21:53:09 siaržuk: эти контейнеры тем и дороги нам что сами занимаются перераспределением памяти

21:53:15 Alex11223: ну мне чота казалось, что размер сразу будет известен, я не знаю почему :)

21:53:40 siaržuk: ну он будет не больше чем размер самого проект файла. БУ-ГА-ГА.

21:54:01 siaržuk: но это пускай в детском садике так програмят ....

21:54:25 siaržuk: в GKG-2012 :-D

21:54:45 siaržuk: давай-давай , не отвлекайся

21:55:25 siaržuk: у тебя-ж пеимер рекурсивной функции есть - слегка подправить и Петя будет посрамлён

21:58:33 Alex11223: дык чота я не понял. после передачи указателя в функцию обработки данных оно выходит из тех секциях. а как тогда оно может читать не все секции с этими данными, а только первую по этому указателю?

21:58:41 Alex11223: секций*

21:59:04 siaržuk: у тебя цикл for скачет по всем вложенным секциям текущей секции

22:00:46 siaržuk: обрабатывая каждую вызовом для неё parse

22:02:52 Alex11223: эм...т.е. for сдвигая указатель на 8 байт пройдет весь файл?

22:03:17 siaržuk: где ты там видел 8 байт?

22:03:34 Alex11223: ну в структуре ж

22:03:56 siaržuk: ГДЕ ТЫ ТАМ ВИДЕЛ 8 БАЙТ?!

22:04:18 siaržuk: читай что написано а не то что ты воображаешь

22:04:26 siaržuk: ГДЕ ТАМ 8 БАЙТ?

22:04:35 siaržuk: ПАЛЬЦЕМ ПОКАЖИ ГДЕ ТАМ 8 БАЙТ?!

22:04:45 Alex11223: sizeof(hdr)?

22:05:11 siaržuk: ПАЛЬЦЕМ ПОКАЖИ ГДЕ Я ТАМ НАОПИСАЛ 8 БАЙТ!!!

22:05:51 Alex11223: 2 уинта32 каждый по 4 байта

22:07:15 siaržuk: 
15:55:32 siaržuk: рекурсия это примерно вот так:
struct hdr {
uint32 id;
uint32 size;
};

void parse(hdr* p)
{
switch(p->id) {
case 'MIDE':
case 'Root':
break;
case 'SPth':
parse_path(p++);
return;
default:
return;
}

uint32 size = p->size;
p++;
for (size_t off = 0; off < size; off += p->size) {
parse(p);
}
}

ГДЕ ТУТ БЛЯДЬ 8 БАЙТ в for?!!!

22:07:16 Ботиха: siaržuk: Фильтруем базар!

22:08:31 siaržuk: _poke Alex11223

22:08:31 Ботиха кинула ломик в сторону Alex11223

22:08:36 Alex11223: хз, нету

22:08:45 siaržuk: о чём и речь. ;)

22:09:19 siaržuk: о том и талдычу весь вечер что for скачет по секциям - одна за другой

22:09:37 Flаmе теперь online [50]

22:10:48 Alex11223: а в моем настоящем коде мне ж вроде самый первый сектор ака MIDE не нужен в этом свитче? или случится что-то страшное?

22:12:03 siaržuk: тогда тебе надо будет организовывать ещё внешний for цикл чтиобы перебрать вложенные секции верхнего уровня. а нахрена тебе два одинаковых цикла?

22:13:59 Alex11223: кстати, а откуда оно будет брать эти красивые 'SPth' и т.д. по указателю? их же перевернуть надо

22:15:18 siaržuk: дык это псевдо-код а не реальный пример. он и в for в таком виде работать не будегт - нужно ведь off как-то приплюсовать к p - что тебя видимо и вогнало в ступор. ;)

22:16:21 siaržuk: само собой нужно будет "перевернуть" - типа добавить к struct hdr функции-аксессоры id(), size() что будут на лету переворачивать

22:16:23 Alex11223: а шо если весь файл перевернуть?

22:17:15 Alex11223: вроде ж все равно всё надо переворачивать

22:17:48 Ботиха: RSS: Новости для http://cia.vc/stats/project/Haiku/.rss Haiku
• Also hide the full screen controls when the mouse is over them. * We just wait a…
Commit by axeld on master :: rhrev43648 haiku/: (link) Also hide the full screen controls when the mouse is over them.We just wait a little longer in this case, like 4.5s.Changed the code to only send the messages when needed, before they were being sent every 1.5s.However, this is untested as of yet, as the layout changes didn't allow me to run the MediaPlayer on my system. Will do so in a minute on another one.

22:17:53 siaržuk: low endian относится к целочисленным данным word, dword - а байт смысл уже ворочать нету

22:18:26 siaržuk: а если ты пути попереворачиваешь - то каша будет

22:18:33 siaržuk: или строчки какие

22:20:07 Alex11223: а как офф к р приплюсовывать? size_t off = p что ли?

22:20:46 siaržuk: 
struct hdr {
        id() { return LE2H(fId); }
        size() { return LE2H(fSize); }
private:        
        uint32 fId;
        uint32 fSize;
};

аксессоры примерно так

22:22:33 knorr зашел как постоянный участник online [1]

22:24:42 Alex11223: а чего LE? я ж вроде ВЕ юзал в CheckFiles() и первой тулзе

22:24:46 siaržuk: шас доколочу кота

22:25:04 siaržuk: угу, БЕ, БЕ

22:25:12 siaržuk: это я для примера

22:25:25 knorr теперь away [0] (No estoy aquí ahora)

22:32:48 siaržuk: 
struct hdr {
        id() { return LE2H(fId); }
        size() { return LE2H(fSize); }
private:        
        uint32 fId;
        uint32 fSize;
};

void parse(hdr* current; hdr* parent)
{
        switch(current->id) {
                case 'MIDE':
                        break;
                case 'SPth':
                        parse_path(current++);
                        return;
                default:
                        return;
        }

        size_t off = 0;
        hdr* child = current + 1;
        while(off < current->size) {
                parse(child, current);
                off += child->size + sizeof(hdr);
                child = (hdr*)(((uint8*)(++child)) + child->size)
        }
}

22:33:01 siaržuk: _poke Alex11223

22:33:02 Ботиха целится в Alex11223 плюсомётом и добро улыбается

22:33:15 Alex11223: _bomb siaržuk

22:33:15 Ботиха: Не могу дать бомбу siaržuk

22:34:27 siaržuk: параметр parent можешь использовать чтобы проверить родительскую секцию и узнать куда клеить Name - к Link или к Fil1 :)

22:36:38 siaržuk: ещё полезный аксессор к данным в хидере:

struct hdr {
[...]
uint8* data() { return (uint8*)(this + 1); }
[...]
};

22:39:33 siaržuk: тогда сборку можно просто написать:

                case 'SPth':
                        gSPthString << current->data() + 9 << " \\\n";
                        return;

22:39:51 Alex11223: а шо уинты8?

22:40:30 siaržuk: угу, не уинт8* а char* надо чтобы операстор BString::operator<<(const char*) сработал. ;)

22:40:49 siaržuk: хотя данные разные бывают

22:40:51 siaržuk: ;)

22:41:19 Alex11223: чота какой-то мозговзрывательный котэ

22:41:46 siaržuk: нормальный.... куда как проще сетмиме-.шного

22:42:34 siaržuk: имя проекта, ты кстати нашёл где живёт?

22:42:45 Alex11223: да чота не очень

22:43:09 siaržuk: если не найдёшь - тупо возьми имя файла проекта без расширения

22:43:32 Alex11223: а курент + 1 это чего? тоже самое что указатель++?

22:43:53 knorr теперь online [1]

22:44:56 siaržuk: указатель смещён на размер hdr-а. но в отлиочие от инкремента сам указатель не меняется

22:45:28 siaržuk: физический смысл current + - получение указателя на данные объекта current

22:45:37 siaržuk: т.е то что лежит за хидером

22:47:12 Alex11223: осталось скомпилировать, слинковать и т.д. все это в голове :D

22:47:48 siaržuk: угу, дерзай

22:52:55 knorr теперь away [0] (No estoy aquí ahora)

22:59:40 beos зашел как постоянный участник online [50]

23:00:44 beos вышел

23:04:11 Alex11223 вышел

23:16:11 siaržuk вышел

23:18:10 Ботиха: RSS: Новости для http://cia.vc/stats/project/Haiku/.rss Haiku
• Fixed RemoteDesktop build that has been broken with hrev43319. * Or more…
Commit by axeld on master :: rhrev43649 haiku/: (link) Fixed RemoteDesktop build that has been broken with hrev43319.Or more specifically, in 323b65468e58, part of that revision (ie. the initial import from Oliver).

23:34:11 Flаmе: Ботиха: Лети-лети, Фобос-грунт, через запад на восток, через север, через юг, возвращайся, сделав круг

23:34:12 Ботиха: Flаmе: Слишком многа букаф!