02:04

Тотальная неудачница и убийца жёстких дисков.
#post-id: 2579-23-47
#original-date: 18.08.2007 Sat
#original-time: 11:47 PM
#original-day:  2579

Только что подумала и опечалилась... У меня уже наверное месяц темы глючат, а от Уважаемых Администраторов! ни каких вестей. Только некий Глюкер со мной лениво общается и похоже не верит, что проблема still exist... Ну так... Назывался глюкером...

Есть три варианта решения проблемы.

1. Простой. Сделать вид, что с темами ни каких проблем нет и продолжать заставлять народ наблюдать темы вроде "SailorMoon\\\\\,\\\\Byaka". Ну и петь песни "Ура, Админам!" в Спирите.

2. Сложный. Сохранить все файлы настроек тем, создать у себя локальную страницу, разобраться в Javasсript спагетти, которую в скриптах понаварили, понять как там устроена отправка обновлённого списка тем, поправить всё что нужно. Отправить и долго надеяться на чудо.

/* Нет, я это могу, если захочу. Но один вопрос... То что Я это могу - не повод надеяться, что это сможет любой юзер, и уж точно не повод ждать пока юзер сам это сделает. */

3. Непростой. Поудалять (если вообще получится) все темы и просить L.P.M. добавить пересоздание личных тем в клиент. Что бесперспективно и нежелатьльно, потому как по моей вине в клиент и так уже добавилось несколько бесполезных новшеств ^^'

#music: Initial D\Initial D Second Stage D Selection\Mega NRG Man / Burning Desire (New Generation mix)

Комментарии
20.08.2007 в 11:40

 
А чем тебя не устраивает вариант - перезагрузить в клиенте темы (тогда в нем встанут на место "неправильные" названия), потом, используя фильтр по темам и групповые операции, переназначить их (по одной удаляя неправильные темы и назначая правильные)? Или тут проблема на этапе перезагрузки тем?

Кстати, яваскрипт-спагетти там не такое уж сложное)
21.08.2007 в 09:24

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

Кстати, яваскрипт-спагетти там не такое уж сложное)

Лень. Тоесть влом. Влом разбираться почему не работает вэб интерфейс когда есть специальный мужик, который в саппорте сидит.
21.08.2007 в 22:11

 
Там можно в исходном коде подправить название тем в массиве tagsname и тыкнуть кнопку "Сохранить" - по крайней мере у меня это работает. (Ну, никто же не заставляет, собственно, чинить этот интерфейс? Достаточно сделать так, чтобы себе удобно было.) А вот почему "temp tag"'и не переименовываются - это хороший вопрос... тем более странно, что последние (э... да что там, все личные темы, но последние - за несколько прошедших дней, ну, пусть за неделю) личные темы у меня создавались из клиента и встали нормально...
21.08.2007 в 23:57

 
P.S. А как эти способы "просто, сложный и непростой" идут в порядке возрастания сложности?)
22.08.2007 в 06:55

Тотальная неудачница и убийца жёстких дисков.
Там можно в исходном коде подправить название тем в массиве tagsname и тыкнуть кнопку "Сохранить" - по крайней мере у меня это работает. (Ну, никто же не заставляет, собственно, чинить этот интерфейс? Достаточно сделать так, чтобы себе удобно было.)

Поправила. Оказалось что тем на две больше чем в клиенте. Тоесть за соответстве ID тем назначенным на посты в клиенте и соответствие тех же ID тем же постам на сайте я не ручаюсь...

А вот почему "temp tag"'и не переименовываются - это хороший вопрос... тем более странно, что последние (э... да что там, все личные темы, но последние - за несколько прошедших дней, ну, пусть за неделю) личные темы у меня создавались из клиента и встали нормально...

Наверное это как-то связано с тем что код, отвечающий за добавление тем в список содержал ошибку. Наверное поэтому парсинг завершался ошибкой.

P.S. А как эти способы "просто, сложный и непростой" идут в порядке возрастания сложности?)

Скорее по возрастания затрат совести ^^'
31.08.2007 в 19:57

 
Поправила. Оказалось что тем на две больше чем в клиенте. Тоесть за соответстве ID тем назначенным на посты в клиенте и соответствие тех же ID тем же постам на сайте я не ручаюсь...
значит, все равно придется на сайте править.
если импорт не идет - можно очистить tags.bin (тогда удалятся вообще все темы, и общие - ну, в постах они, конечно же, останутся и после перезагрузки встанут на место) - или удалить его, тогда при перезапуске будет скопирован файлик с общими темами... на "пустое" место должно встать нормально.

Наверное это как-то связано с тем что код, отвечающий за добавление тем в список содержал ошибку. Наверное поэтому парсинг завершался ошибкой.
посмотреть бы на этот код с ошибкой ^_^
а возможно, дело в слешах в одной из тем - может, из-за них в итоге получается некорректный JS-код и ничего не работает. (угу, в клиенте парсер пытается действовать как можно ближе к JS-скрипту, и на него этот глюк тоже распространяется...)
03.09.2007 в 09:29

Тотальная неудачница и убийца жёстких дисков.
значит, все равно придется на сайте править.
если импорт не идет - можно очистить tags.bin (тогда удалятся вообще все темы, и общие - ну, в постах они, конечно же, останутся и после перезагрузки встанут на место) - или удалить его, тогда при перезапуске будет скопирован файлик с общими темами... на "пустое" место должно встать нормально.


Ни чего не поняла, но буду стараться ^^

Кстати, мне показалось, что клиент ссылается в разных темах на один идентификатор. Например, я поставила тему Platform, сохранила, опять захожу, а там - Программизм... Может быть сюда и ушли темы ^^

посмотреть бы на этот код с ошибкой ^_^

Ну... Там должно быть вроде 'Byaka','Test', а получилось 'Byaka\\\\\'\\\\Test'. Уж не знаю от куда оно взялось, но так оно и есть...

Вообще, хорошо бы в клиенте маленькую табличку соответствия тем идентификаторам, в отладочных целях. /* Ага, и просмотр идентификатора поста, как это было в одной из версий ^^ */
03.09.2007 в 13:26

 
Вообще, хорошо бы в клиенте маленькую табличку соответствия тем идентификаторам, в отладочных целях.
можно открыть в Блокноте, получается достаточно очевидная картинка.=)

редактировать, правда, лучше в HEX-редакторе.)

Ага, и просмотр идентификатора поста, как это было в одной из версий ^^
где-то оно было, но исчезло, дабы никого не пугать.
я вот все размышляю над тем, чтобы дать пользователю выбор - хранить данные в бинарном формате (как сейчас) или XML =) или, может, просто импорт/экспорт XML... последнее уже давно в планах стоит, я даже хотел в 0.4.4 это сделать, но что-то совсем закрутился с этими интернет-магазинами и новым программером на работе...

Кстати, мне показалось, что клиент ссылается в разных темах на один идентификатор. Например, я поставила тему Platform, сохранила, опять захожу, а там - Программизм... Может быть сюда и ушли темы ^^
а! слушай, а ведь действительно, склеиваются, наверно. Просто там списки общих/избранных/личных идут отдельно, поэтому они и парсятся по отдельности, а потом темы с одним идентификатором "склеиваются" с объединением флагов. И в конце чистятся темы с одинаковым названием (т.к. ввод тем при создании поста, в общем-то, идет текстом, а не по идентификаторам).
Это я хотел пообещать сделать обработку такой ситуации, но подумал и понял, что не знаю, что тут можно было бы сделать ^_^"
слушай, а пришли мне код твоей страницы с темами?)
а я пока с кавычками поэкспериментирую ^_^
но на сервере тоже определенно что-то не то с темами происходит... может, это все-таки не очень хорошая идея - создавать тему, а потом сразу переименовывать - синхронизация серверов глючит?

04.09.2007 в 06:34

Тотальная неудачница и убийца жёстких дисков.
можно открыть в Блокноте, получается достаточно очевидная картинка.=)

Я открыла, было очевидно пока не добралась до какой-то каши в самом конце файла ^^

я вот все размышляю над тем, чтобы дать пользователю выбор - хранить данные в бинарном формате (как сейчас) или XML =) или, может, просто импорт/экспорт XML... последнее уже давно в планах стоит, я даже хотел в 0.4.4 это сделать, но что-то совсем закрутился с этими интернет-магазинами и новым программером на работе...

Думаю, можно не давать пользователю выбора ^^ Главное посты хранить в блоках <![CDATA[ ]]> а то тэги будут считаться частью дерева XML ^_^ Вообще, я давным давно предлагала что-то подобное, но не думала что когда-нибудь мысли об этом зародятся снова ^_^

Это я хотел пообещать сделать обработку такой ситуации, но подумал и понял, что не знаю, что тут можно было бы сделать ^_^"

Допустим, глобальный объект тем, который содержит коллекцию (это я терминами VB) пар ID - Имя. В постах ссылаться на ID тем. А при выводе в редакторе записи использовать этот объект для того чтобы заполнить список с галочками, установить нужные, а потом при сохранении ориентироваться не на список через запятую (это вообще крайне опасно), а именно на состояние галочек. Тоесть избежать манипулирования темами по именам.

может, это все-таки не очень хорошая идея - создавать тему, а потом сразу переименовывать - синхронизация серверов глючит?

А зачем вообще их переименовывать? Нельзя ли как-нибудь делать это в один приём?
05.09.2007 в 14:14

 
Я открыла, было очевидно пока не добралась до какой-то каши в самом конце файла ^^
а у меня нет каши =/ ну, может быть, она и появится, там первый байт - число значащих символов, потом эти символы, а потом просто "что угодно" - буфер фиксированной длины. При создании новой записи оно заливается нулями, а при копировании может быть что-то такое (если более которая строка пишется поверх более длинной, остается кусок длинной ^_^)

Вообще, я давным давно предлагала что-то подобное, но не думала что когда-нибудь мысли об этом зародятся снова ^_^
так это все оттуда! из твоего предложения.)) ну и из идеи, что "продвинутому" пользователю неплохо было бы дать возможность подправить данные, не копаясь в бинарнике...

Главное посты хранить в блоках <![CDATA[ ]]> а то тэги будут считаться частью дерева XML ^_^
когда я из PHP генерирую XML, я обычно делаю htmlspecialchars(), не люблю CDATA почему-то)
кстати, в клиенте эта функция тоже реализована...

Думаю, можно не давать пользователю выбора ^^
XML - штука оччень тормозная. Можно попробовать парсить его "ручками", исходя из идеи заранее известного формата, а если там окажется "что-то не то" - "пользователь сам виноват", но вдруг все-таки глюки будут, да и хотелось бы настоящий XML поддерживать, а не какой-нибудь псевдо-XML.)

Допустим, глобальный объект тем, который содержит коллекцию (это я терминами VB) пар ID - Имя.
В постах ссылаться на ID тем.
все верно, так и есть

А при выводе в редакторе записи использовать этот объект для того чтобы заполнить список с галочками, установить нужные, а потом при сохранении ориентироваться не на список через запятую (это вообще крайне опасно), а именно на состояние галочек.
но при этом пользователь лишается возможности вводить тэги вручную.

надо будет прикрутить-таки автозавершение названия темы и подтверждение создания новых тем, наверно...

А зачем вообще их переименовывать? Нельзя ли как-нибудь делать это в один приём?
ну... если я отправлю темы сразу с родными именами, то я не узнаю, какой теме какой ID соответствует. Парсить страницу с темами и искать новые ID по названию тем не хочу, ибо непонятно как скрипт на сервере их закодирует (были всякие глюки с кавычками, апострофами и т.д.). Можно отправлять по одной теме и смотреть, какой ID "лишний" - т.е. появился после добавления - но после аналогичных экспериментов с БИ я боюсь повторять этот прием =)) тем более, пачкой темы отправляются гораздо быстрее... А так я просто отправляю "что-то", заранее зная, что написано в начале у этого "что-то", и будучи почти уверен, что с этого же ни одна "нормальная" тема начинаться не будет)
и еще, я, кажется, нашел глюк в парсере... но подробности позже, на выходых, наверно)
06.09.2007 в 09:05

Тотальная неудачница и убийца жёстких дисков.
а у меня нет каши =/ ну, может быть, она и появится, там первый байт - число значащих символов, потом эти символы, а потом просто "что угодно" - буфер фиксированной длины. При создании новой записи оно заливается нулями, а при копировании может быть что-то такое (если более которая строка пишется поверх более длинной, остается кусок длинной ^_^)

Нет, точно пора переходить на XML ^^ А файлы с произвольным доступом (как раз с фиксированными записями) я сколько раз сама пыталась использовать, но они какждый раз не устраивали ^^

так это все оттуда! из твоего предложения.))

*^^*

когда я из PHP генерирую XML, я обычно делаю htmlspecialchars(), не люблю CDATA почему-то)

Мне CDATA нравится тем, что позволяет оставить текст без изменения. А то если что-то заменить, это всегда может выйти боком позже ^^

XML - штука оччень тормозная. Можно попробовать парсить его "ручками", исходя из идеи заранее известного формата, а если там окажется "что-то не то" - "пользователь сам виноват", но вдруг все-таки глюки будут, да и хотелось бы настоящий XML поддерживать, а не какой-нибудь псевдо-XML.)

Насчёт тормознутости не совсем согласна. Кроме того, именно его строгость и полезна. Например, в той же налоговой всё со скрипом переводится на XML со своего формата именно потому что XML удобнее парсить по XSD схеме ^^ Думаю, что если ты будешь использовать MSXML постоянно (логин пользователя в клиент, создался общект, загрузилось и используется по самого завершения с постоянными сохранениями), то тормозов бть не должно.

но при этом пользователь лишается возможности вводить тэги вручную.

Зато получает кнопик "Добавить тему" ^_^ Темы создаются раз в пятилетку, а ошибки встречаются гораздо чаще.

Кстати, вопрос на засыпку. Тут DDD сказал что юзает GZip с дайриками. Я на днях поставила себе NetLimiter и обнаружила (статистику не могла посмотреть ^^') сколько кушает клиент. Может быть TODO List стоит добавит что-нибудь вроде GZip? ^^
06.09.2007 в 09:28

 
А файлы с произвольным доступом (как раз с фиксированными записями) я сколько раз сама пыталась использовать, но они какждый раз не устраивали ^^
а меня они всегда устраивали и устраивают до сих пор)))
гораздо удобнее и быстрее)

Нет, точно пора переходить на XML ^^
да ладно, что тебя смущает?)

Думаю, что если ты будешь использовать MSXML постоянно (логин пользователя в клиент, создался общект, загрузилось и используется по самого завершения с постоянными сохранениями), то тормозов бть не должно.
ну... я пробовал MSXML на другом проекте (тоже клиент, но простенький, для редактирования статей и новостей на сайте) - там данные тоже получались в формате XML... но с MSXML я терял пару лишних десятков Мб памяти и парсинг шел в несколько раз медленнее (по сравнению с RegExpr). Я потом решил, что формат будет фиксированным, и парсил все это рег. выражениями...

Зато получает кнопик "Добавить тему" ^_^
но вручную вводятся не только новые темы. я сам нередко ввожу темы вручную, а не галочками...

Может быть TODO List стоит добавит что-нибудь вроде GZip? ^^
хм... стоп, @Diary.Client позаимствовал первую версию сетевого модуля от @Diary.Redesigner, а последний вполне исправно работал с gzip. То есть оно, как бы, реализовано... но я посмотрю, может, там какой-нибудь заголовок потерялся и gzip не принимается...
06.09.2007 в 10:29

Тотальная неудачница и убийца жёстких дисков.
да ладно, что тебя смущает?)

Не знаю ^^'

ну... я пробовал MSXML на другом проекте (тоже клиент, но простенький, для редактирования статей и новостей на сайте) - там данные тоже получались в формате XML... но с MSXML я терял пару лишних десятков Мб памяти и парсинг шел в несколько раз медленнее (по сравнению с RegExpr). Я потом решил, что формат будет фиксированным, и парсил все это рег. выражениями...

Странно. Я делаю каталог диска в XML, всё дерево строится в памяти, а потом файл сбраывается на диск, но у меня тормоза в основном связаны с чтением с диска и уничтожением тысяч объектов моего ajpFoundedFiles ^^ А про MSXML я вообще не вспоминала ^^

но вручную вводятся не только новые темы. я сам нередко ввожу темы вручную, а не галочками...

Честно говоря, такая мысль не приходила мне в голову ^^ Ибо можно ошибиться ^^

хм... стоп, @Diary.Client позаимствовал первую версию сетевого модуля от @Diary.Redesigner, а последний вполне исправно работал с gzip. То есть оно, как бы, реализовано... но я посмотрю, может, там какой-нибудь заголовок потерялся и gzip не принимается...

Вот это уж не знаю... Но мне показалось что в последнее время апетит клиента сильно вырос...
06.09.2007 в 10:36

 
А про MSXML я вообще не вспоминала ^^
у меня как-то вообще парсинг XML - частая головная боль >.<
а вот, кстати, Flash как будто кушает XML очень быстро. Но у него такие требования к ресурсам, что, возможно, из-за этого я просто не замечаю затрат на XML... тем более, что сам в нем ничего не делаю)

Я делаю каталог диска в XML, всё дерево строится в памяти, а потом файл сбраывается на диск
Вот модификация дерева - это быстро, да. Если по одному элементу) не знаю, как там будет с перебором, когда нужно все элементы обработать, но, наверно, сравнимо. А вот сохранение... >.< А про загрузку я вообще молчу - вообще, клиент и так грузится неприлично долго сейчас...

Честно говоря, такая мысль не приходила мне в голову ^^ Ибо можно ошибиться ^^
вроде в ЖЖ так и делается )
во всяком случае, идея - оттуда)
просто иногда легче ввести, чем искать нужный пункт в огромном списке)

Вот это уж не знаю... Но мне показалось что в последнее время апетит клиента сильно вырос...
слушай, ты права, там вообще нет заголовка Accept-Encoding. Видимо, когда-то с сжатием возникли проблемы и я его отключил. Ладно, я постараюсь его включить в следующей версии (видимо, 0.4.5 будет большей частью "исправлением", а не нововведением ^_^)
07.09.2007 в 04:08

Тотальная неудачница и убийца жёстких дисков.
у меня как-то вообще парсинг XML - частая головная боль >.<

Написала вчера программу для сбора ссылок из настроек ImageShack Toolbar. Храню всё в XML. Сохранение с построением дерева, конечно, умопомрачительно. А вот чтение с использованием XPath - пара пустяков ^^ Поэтому даже не знаю что и сказать ^^'

А вот сохранение... >.< А про загрузку я вообще молчу - вообще, клиент и так грузится неприлично долго сейчас...

Можно минимизировать это, если работать постоянно с объектом XML документа. Тоесть не переписывать всё в переменные настроек, коллекции постов и тому подобное, а постоянно работать через XPath и ссылки на объекты ^^

видимо, 0.4.5 будет большей частью "исправлением", а не нововведением ^_^

0.4.5 Service Release ^_^ Хорошо, будем ждать ^_^
07.09.2007 в 10:18

 
Можно минимизировать это, если работать постоянно с объектом XML документа. Тоесть не переписывать всё в переменные настроек, коллекции постов и тому подобное, а постоянно работать через XPath и ссылки на объекты ^^
но идея отказаться от текущей структуры мне все равно пока не нравится)

Написала вчера программу для сбора ссылок из настроек ImageShack Toolbar. Храню всё в XML. Сохранение с построением дерева, конечно, умопомрачительно. А вот чтение с использованием XPath - пара пустяков ^^ Поэтому даже не знаю что и сказать ^^'
в общем, надо пробовать и смотреть на практике, скорее всего...

0.4.5 Service Release ^_^ Хорошо, будем ждать ^_^
угу)
кстати, извини, я только сегодня смог прочитать твои комментарии в сообщ-ве разработки >.< то есть о факте трех невидимых комментов я знал, но ничего больше...
11.09.2007 в 10:56

Тотальная неудачница и убийца жёстких дисков.
но идея отказаться от текущей структуры мне все равно пока не нравится)

Вот с этого-то и надо было начинать ^_^

в общем, надо пробовать и смотреть на практике, скорее всего...

Кстати, когда я поборю в себе лень и сделаю сохранение постов в клиенте для Блогов (а также обработку ошибок, обработку ошибок на сервере), всё буду хранить в XML. Просто лень придумывать своё.

кстати, извини, я только сегодня смог прочитать твои комментарии в сообщ-ве разработки >.< то есть о факте трех невидимых комментов я знал, но ничего больше...

Ни чего страшного ^^
11.09.2007 в 11:52

 
Вот с этого-то и надо было начинать ^_^
я думал, это из разряда очевидного)

Просто лень придумывать своё.
а чего там придумывать - скидывай в файл то, что в памяти находится.)

Ни чего страшного ^^
мрр)

а "ничего" все-таки слитно пишется) не то чтобы меня это задевало, но создается впечатление, что прорисовка в браузере глючит >.<
11.09.2007 в 12:34

Тотальная неудачница и убийца жёстких дисков.
а чего там придумывать - скидывай в файл то, что в памяти находится.)

Ну... Это если есть структура и массив. А я же люблю всё в классы с кучей сервиса упаковывать ^^ Поэтому проблема сериализации для меня очень актуальна ^^

а "ничего" все-таки слитно пишется) не то чтобы меня это задевало, но создается впечатление, что прорисовка в браузере глючит >.<

Попробуй написать русский текст шрифтом MS Mincho ^_^ Думаю, после этого пробелы будут восприниматься намного лучше ^_^
11.09.2007 в 12:42

 
А я же люблю всё в классы с кучей сервиса упаковывать ^^
хех =) не раз замечал, что более серьезные программеры любят классы =)
а у тебя по экземпляру класса прямо на каждый пост, что ли? просто непонятно, зачем оно нужно, разве что этот класс умеет сам и в окошки в форме редактирования вставляться, и HTTP-запрос генерировать...) а если один класс - ну так там, как раз, какая-то структура должна быть...

Попробуй написать русский текст шрифтом MS Mincho ^_^
попробовал)
жуть)

можно было бы, конечно, заменишь шрифт на мою любимую Verdana, но глюки в голове все равно останутся из-за разного расстояния между буквами)
11.09.2007 в 13:40

Тотальная неудачница и убийца жёстких дисков.
а у тебя по экземпляру класса прямо на каждый пост, что ли? просто непонятно, зачем оно нужно, разве что этот класс умеет сам и в окошки в форме редактирования вставляться, и HTTP-запрос генерировать...) а если один класс - ну так там, как раз, какая-то структура должна быть...

Один класс, который воплощает в себе запись. А потом можно набирать коллекции объектов. Ну и можно методы вроде .InitForm(ByVal Form As frmPost) и .GetFromForm(ByVal Form As frmPost)... Просто мне так проще работать, зная что объект всё от меня скрывает и мне можно не задумываться о выделении памяти, размещении, управлении тем что внутри ^^
11.09.2007 в 13:51

 
м-м-м, с моей любовью синхронизировать потоки и вообще передавать данные через SendMessage, передавая в качестве lParam указатель на нужную структуру данных... бр-р)

это действительно удобнее, но я как-то со временем пришел к мысли, что чтобы писать программы, работающие быстро, и не слишком мучаться в процессе написания, нужно иметь прямой доступ к данным и оперировать с ними непосредственно)
11.09.2007 в 14:53

Тотальная неудачница и убийца жёстких дисков.
Ну... В честь того, что я пишу на VB, мышление у меня до сих пор однопоточное ^^ Дополнительный поток я спользовала только один раз - в Global Hotkeys для ждущего таймера, который откладывал разблокирование скринсейвера.

Да и вообще, для меня важнее понятность кода и то, что я смогу вспомнить как это всё работает где-то через годик после последнего открытия проекта. Поэтому мои программы работают не так быстро как хотелось бы. Но за всё надо платить ^^
11.09.2007 в 15:03

 
Да и вообще, для меня важнее понятность кода и то, что я смогу вспомнить как это всё работает где-то через годик после последнего открытия проекта.
ну... это уже дело привычки. если я сейчас стану писать классами, то, открыв этот проект через год, мне, скорее всего, захочется просто поматериться на себя прошлого) а вот открыв в августе 2007 код @Diary.Redesigner'а, который последний раз трогался в июле 2006, достаточно было просто пробежаться глазами по коду (хотя там, слава богу, всего 3000 строк функционала - все остальное суть интерфейс, всякие окошки настроек и т.д.), чтобы снова в нем ориентироваться)

В честь того, что я пишу на VB, мышление у меня до сих пор однопоточное ^^
хе... VB... в Delphi на удивление просто создавать потоки) просто пишешь наследника TThread и переопределяешь ему Execute() =) Но с сетевыми программами без доп. потоков тяжело обходиться. Мучиться с таймерами и non-blocking mode - сложнее)
11.09.2007 в 15:50

Тотальная неудачница и убийца жёстких дисков.
хе... VB... в Delphi на удивление просто создавать потоки) просто пишешь наследника TThread и переопределяешь ему Execute() =) Но с сетевыми программами без доп. потоков тяжело обходиться. Мучиться с таймерами и non-blocking mode - сложнее)

WinSock Control и WinInet Control, кстати, создают для себя нить. Особенно это чувствуется со вторым. Там наверное очень хитрый маршалинг вызовов идут, поэтому всё работает, но мне от этого как-то не по себе было ^^

это уже дело привычки

Навеное ^^
11.09.2007 в 15:52

Тотальная неудачница и убийца жёстких дисков.
Кстати, обычно синхронизация и отнимает много сил. В книге Moving to VB.NET Дэн Эпплман главу, посвящённую многопоточности начал с нескольких глав запугиваний, что будет если программист не осознает всю глубину ответственности ^^'
11.09.2007 в 15:55

 
WinSock создает, но далеко не всегда) @Diary.Redesigner основывался как раз на автоматическом создании отдельного потока, и именно тут приходилось синхронизироваться с основным (вернее, со вторым) потоком) хотя поначалу, действительно, незаметно) оно вроде работает, пока не попытаешься, например, порисовать на форме из этого работающего кода, или выловить оконное сообщение. При этом все моментально висло)
Wininet - даже не знаю)
11.09.2007 в 15:58

 
что будет если программист не осознает всю глубину ответственности
угу, я даже как-то в процессе подобных экспериментов несколько лет назад убил Винду =))
но... не знаю, как-то я писал прокси-сервер из одного потока, жутко не понравилось, даже почти поклялся больше таких вещей не писать =))
11.09.2007 в 16:33

Тотальная неудачница и убийца жёстких дисков.
угу, я даже как-то в процессе подобных экспериментов несколько лет назад убил Винду =))

Мощно... Мне максимум удавалось убить VB из обычного кода не использующего API. Просто запускаешь EXE, он вылетает, а потом VB5.EXE не запускается. Я так и не поняла в чём там было дело, но я пыталась показать сплэш ^^

Wininet - даже не знаю)

У меня журнал ведётся из события StateChanged ^^
11.09.2007 в 16:56

 
У меня журнал ведётся из события StateChanged ^^
и что, для этого события создается отдеьный поток?

Мощно...
ну... я там с сетью упражнялся, пытаясь отправить максимум запросов в секунду... в результате - синий экран, после перезагрузки не работает сеть (вообще - локальные соединения не открываются, попытка дозвониться провайдеру оканчивается таймаутом)... потом я попытался порыться в настройках и оно вообще перестало загружаться. Решилось дело переустановкой) Самое удивительное, что это не какая-нибудь win95 была, а win2000, которую специально обрушить мне не удалось )