Voilà.
Клиент становится все лучше:
– горизонтальный список сообществ на вкладке "Посты" теперь отображает не полные названия сообществ, а только начало: 
читать дальше
Отключить это можно в контекстном меню списка.
– там же, список можно прокручивать колесиком мыши;
– информация о длине записи водворена на место (в левый нижний угол окна ввода записи);
– GZIP-сжатие снова поддерживается;
– U-mail'ы теперь приходят с датой и временем;
– импорт постов: множество дополнительных опций импорта; в том числе - импорт постов заданного периода времени; импорт по ссылке (можно указать ссылку на отдельный пост и он будет импортирован; можно, например, указать ссылку на список записей с определенной @темой, и будут импортированы только посты с этой @темой; можно даже указать ссылку на четвертую страницу дневника и дневник будет импортирован, начиная с нее, т.е. первые три будут пропущены); импорт определенного числа постов (например, если вы прожили неделю без клиента и отправили через сайт пять постов, можно импортировать только их);
– как дополнение к предыдущему, теперь можно перезагружать текст отдельных постов с сервера прямо из контекстного меню списка постов: там, где это возможно, появляется пункт "Перезагрузить с сервера";
– и еще, окно импорта теперь не блокирует основное окно программы, так что во время импорта можно делать что-нибудь другое. Правда, если импорт запущен в режиме обновления, то отправленные посты все равно будут заблокированы, но создавать новые посты и редактировать их по-прежнему можно;
импорт записей сообщества (там же, где делается импорт дневника) - в общем-то, точно так же, как с дневником, просто на вкладке "Источник" нужно указать соответствующее сообщество. При этом импортируются только записи, которые Вам разрешено редактировать (то есть, только Ваши; впрочем, модераторы сообществ смогут скачать все посты, в т.ч. чужие, и редактировать их из клиента). Кстати, можно импортировать посты из сообществ, членом которых Вы уже не являетесь - просто укажите ссылку на любую страницу сообщества вместо его названия. Импортированные таким образом записи, впрочем, будут видны только на вкладке "Все записи", отдельная вкладка для них создаваться не будет;
– по многочисленным просьбам, автообновление. По умолчанию отключено, включить и настроить можно, как обычно, в "Настройках", на последней вкладке. Дополнительно в меню "Программа" появились два пункта - вывод информации о последней версии и проверка новых версий. Для автообновления необходим WinRAR на компьютере; если вдруг клиент его не найдет, то предложит обновиться вручную.
Что касается настроек брендмауэра: проверка обновлений производится обращением к www.diary.ru, так что дополнительных правил создавать не нужно; при автоматическом обновлении новая версия скачивается с сервера photonid.com - нужно разрешить доступ к нему (или не использовать автообновление, а вручную скачивать архив и распаковывать поверх старой версии).
 
По прежнему адресу:




@темы: @дневники

Комментарии
16.09.2007 в 00:09

War...War never changes.
неслабо! =)
*ушел тестить*
16.09.2007 в 14:53

War...War never changes.
Нашел ошибку.
В списке в боковом списке сообществ почему-то теперь отсутствует пункт "Все записи".
В результате получилось что всё сдвинулось - выделяешь мой дневник - получаешь по сути "Все записи".
Выделяешь первое сообщество - получаешь "свой дневник".
Это видно даже если просто включить отображение и вкладок и бокового меню. - во вкладках все правильно и видно несоответствие имени вкладки и имени бок. меню.
16.09.2007 в 19:41

не оправдывайся, акварель
GB>-B> AB@0==>5 B2>@8BAO C <5=O A :8@8;8F59 2 :;85=B5, 030
- сие получается, если попробовать набрать умылку по-русски. К латинице претензий нет, ага.
16.09.2007 в 21:13

put a rock beat over everything
В результате получилось что всё сдвинулось - выделяешь мой дневник - получаешь по сути "Все записи".
+1. вот блин, я аж испугалась: посему я в поддержку дневников отправила вопрос про оперу???
16.09.2007 в 22:25

Voilà.
Proof, Arrgot, Swimming guineapig, хорошо-хорошо, сейчас исправлю, завтра (или, может, даже сегодня) будет обновление.

Arrgot, при втором или третьем открытии окна это должно исчезать - до перезапуска. Впрочем, пока можно использовать и визуальный режим, - обычно в юмейлах особо сложного форматирования не требуется.
16.09.2007 в 23:25

не оправдывайся, акварель
tnx -)
16.09.2007 в 23:50

Voilà.
Все, качаем обновление.
Версия 0.4.5 не выстояла и суток %)
18.09.2007 в 15:41

Тотальная неудачница и убийца жёстких дисков.
Для автообновления необходим WinRAR на компьютере

Напишу, пожалуй здесь. На сайте этого архиватора есть бесплатная библиотека UnRAR.DLL. Ни чего хитрого в её использовании нет, зато можно снять такое ограничение ^^ Кстати, лучше её копировать не в System, а в каталог программы - так надёжнее.
18.09.2007 в 16:05

Voilà.
Линда Кайе, я знаю, но у меня аллергия на программы, таскающие за собой какие-то библиотеки ^^' вообще, есть даже ее порт под Delphi, но таскать за собой лишние 160 кБ ради автообновления не хочется (при том, что сама программа распространяется в архиве WinRAR!)
18.09.2007 в 16:15

Voilà.
...правда, можно было бы просто искать эту библиотеку в системе - и предлагать выбор на скачивание архива с этой библиотекой и без нее, но, мне кажется, все равно это мало кому нужно ^^'
кстати, если задаться целью сложить все, что нужно для клиента, в один архив, получится больше 1.5 Мб.
18.09.2007 в 16:24

Тотальная неудачница и убийца жёстких дисков.
Ну... В сжатом виде библиотека весит 70 Кб, на неё можно давать ссылку отдельно - "Если вы хотите автообновление..."
18.09.2007 в 16:29

Voilà.
на неё можно давать ссылку отдельно - "Если вы хотите автообновление..."
...клиент постепенно превратится в конструктор ^^'

...но я обязательно подумаю над этим)
18.09.2007 в 21:17

Тотальная неудачница и убийца жёстких дисков.
...клиент постепенно превратится в конструктор ^^'

Конструктор - это когда куча плагинов, половина отвечает за работу самой программы как таковой, но все взаимозаменяемы, но без них ни чего не работает. Это Миранда такая.

А в данном случае - опциональный модуль для поддержки автообновления.
19.09.2007 в 00:34

Voilà.
Линда Кайе, слушай, а я понял, что нужно сделать.
Просто надо, чтобы unrar.dll скачивалась не при установке, а вместе с обновлением, автоматически. И делать это, соответственно, можно будет только в том случае, если WinRAR'а на машине нет (ну или найти не получилось) и unrar.dll самой тоже нет. И она действительно весит 76 кБ под upx'ом, да...
Или я что-то упускаю?
19.09.2007 в 11:11

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

/* До сих пор не могу прийти в себя от откровения знакомого линуксоида (Призрак), который межпроцесное взаимодействие организовывал через Stdin/Sdout OO */

В принципе, в Readme к библиотеке написано, что лучше не искать её в System, а ставить в папку с программой, но тут уж смотри сам ^^ А в остальном идея мне даже нравится. Только лучше без unrar.rar ^_^'
19.09.2007 в 13:26

Voilà.
До сих пор не могу прийти в себя от откровения знакомого линуксоида (Призрак), который межпроцесное взаимодействие организовывал через Stdin/Sdout OO
я тоже иногда так делаю и не вижу в этом ничего плохого.)


В принципе, в Readme к библиотеке написано, что лучше не искать её в System, а ставить в папку с программой, но тут уж смотри сам ^^
В принципе, я так и собираюсь сделать, но есть шанс, что библиотека уже стоит где-то в другом месте. Например, у меня был дистрибутив WinRAR'а (3.10, что ли), в который входила эта библиотека. (А вот в текущем дистрибутиве ее нет.)

Там кода всего ничего
:nope: даже текущие 700 кБ мне кажется неприлично большим размером для клиентской программы такого рода. И я с каждой версией прилагаю определенные усилия, чтобы эту цифру уменьшить, правда, из-за нововведений она растет быстрее, чем уменьшается >.<

ибо кто их знает как они себя поведут
Есть предположение, что, если winrar ведет себя не так, как надо, пользователь сам виноват. Тем более, что ничего страшного не произойдет, кроме того, что клиент просто не обновится. (Разве что какой-нибудь хакер замаскирует под rar.exe утилиту для уничтожения жесткого диска :-D)
19.09.2007 в 18:22

Тотальная неудачница и убийца жёстких дисков.
В принципе, я так и собираюсь сделать, но есть шанс, что библиотека уже стоит где-то в другом месте. Например, у меня был дистрибутив WinRAR'а (3.10, что ли), в который входила эта библиотека. (А вот в текущем дистрибутиве ее нет.)

Есть такая штука как DllHell. Суть в том, что у тебя может требоваться функциональность более новой версии, а в системе будет старая. Или с глюком. Или вообще Custom build с большой модификацией. А теперь представь что это выполнится в адресном пространстве программы ^^

Есть предположение, что, если winrar ведет себя не так, как надо, пользователь сам виноват. Тем более, что ничего страшного не произойдет, кроме того, что клиент просто не обновится. (Разве что какой-нибудь хакер замаскирует под rar.exe утилиту для уничтожения жесткого диска

В общем-то да, но всёже ^^' У меня по крайней мере начинается лёгкая паника когда какой-нибудь SetupNFS3.EXE вместо того чтобы самостоятельно извлекать файлы показывает мне окно WinRAR (а то и вообще RAR.EXE) и пишет "Дождитесь закрытия чёрного квадрата"... Кроме того, так невозможно отслеживать ошибки при обновлении.
19.09.2007 в 20:12

Voilà.
А теперь представь что это выполнится в адресном пространстве программы ^^
Она вообще не загрузится или вернет ошибку. Если с глюком - сами виноваты (WinRAR тоже может быть с глюком), к тому же, ее в любом случае запустит сначала то, ради чего она была установлена, а потом уже клиент (если она до этого момента доживет).

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

У меня по крайней мере начинается лёгкая паника когда какой-нибудь SetupNFS3.EXE вместо того чтобы самостоятельно извлекать файлы показывает мне окно WinRAR (а то и вообще RAR.EXE)
по-моему, оно-то как раз таскает с собой свой rar.exe )
20.09.2007 в 18:15

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

А если мощнейший buffer overrun? ^^'

по-моему, оно-то как раз таскает с собой свой rar.exe )

EXE и DLL - разные вещи. DLL хотябы не пишет настройки в реестр поверх новой версии...
20.09.2007 в 18:23

Voilà.
А если мощнейший buffer overrun?
В том-то и дело, что, если библиотека способна на такое при простейших операциях (распаковка архива), то пользователь, скорее всего, об этом знает. И я не думаю, что где-то в системе действительно может оказаться общедоступной такая версия библиотеки и все будет работать. (Хотя сама библиотека вполне может появиться, скажем, из-за действий какого-нибудь глючного вируса...) Ладно-ладно, уговорила, лучше действительно скачать свою копию.)

EXE и DLL - разные вещи. DLL хотябы не пишет настройки в реестр поверх новой версии...
консольный rar.exe тоже своего ничего не пишет, а берет их из командной строки или из умолчаний.
20.09.2007 в 18:49

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

О, консоль ^_^ Только в NT я её перестала бояться ^^ Что мы делаем? ShellExecute(...., SW_HIDE). Что делает NT? Закрывает при завершении процесса. Что делает Win98? Вхудшем случае может сказать "Нажмите любую клавишу". И финиш ^^ Потому как по-хорошему это уже не убить ^^'
20.09.2007 в 19:04

Voilà.
Что мы делаем? ShellExecute(...., SW_HIDE)
WinExec() =)

Что делает Win98? Вхудшем случае может сказать "Нажмите любую клавишу". И финиш ^^
а ждать и не надо, в принципе. Просто под конец запускаем нужную программу (в случае с автообновлением - обновленный файл) и пусть эта невидимая консоль висит минимум до закрытия процесса, максимум - до перезагрузки)
а еще есть прикол - если из батника удалить самого себя, исполнение прерывается. Но вот в не-NT я такого почему-то не припомню)
плюс, если программа не рассчитана на win98, то, возможно, будет лучше, если она вообще не установится)
20.09.2007 в 19:17

Тотальная неудачница и убийца жёстких дисков.
WinExec() устарела ^^

А в Win98 при выключении машины тебе скажут что нжно закрыть что-то, а что - поди разбри ^^
20.09.2007 в 19:24

Voilà.
WinExec() устарела ^^
угу, но пока она даже в Висте работает как часы, а насколько удобнее)

А в Win98 при выключении машины тебе скажут что нжно закрыть что-то, а что - поди разбри ^^
по-моему, там остается окошко типа "нажмите любую клавишу для завершения", которое закрывается малейшим дуновением ветра и по клавише, и по закрытию окна, и по сигналу о завершении работы... или нет?
25.09.2007 в 10:44

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

Ну, у меня в VB для этого Shell() ^^ А ShellExecute я использую когда нужна функциональность оболочки, а CreateProcess() для отслеживания работы программы ^^

по-моему, там остается окошко типа "нажмите любую клавишу для завершения", которое закрывается малейшим дуновением ветра и по клавише, и по закрытию окна, и по сигналу о завершении работы... или нет?

Не всегда. Более того, система может намертво повистнуть так, что только с кнопки её и выключишь. Поэтому я осторожно работаю с консолью в Win98. Сколько раз я забывала FAR закрыть, после чего всё висло...
26.09.2007 в 05:07

Voilà.
Ну, у меня в VB для этого Shell() ^^ А ShellExecute я использую когда нужна функциональность оболочки, а CreateProcess() для отслеживания работы программы ^^
Ага, в свое время я именно замену Shell()'у искал и стал пользоваться WinExec(). Интересно, как сама Shell() работает.
А вообще, как предполагается запускать готовую командную строку? В принципе, можно использовать Wsсript (или как его там) или cmd.exe через ShellExecute, передавая данные как параметры командной строки, но это, по-моему, не менее криво, чем WinExec()...

Не всегда. Более того, система может намертво повистнуть так, что только с кнопки её и выключишь. Поэтому я осторожно работаю с консолью в Win98. Сколько раз я забывала FAR закрыть, после чего всё висло...
хмм... странно ^^' не помню такого... разве что если пытаться закрыть работающее консольное приложение? тогда придется выжидать аж два таймаута, но в конце оно все-таки закроется...
на досуге ставил Win95 в VirtualPC - первое впечатление, еще с установки: «ужас, как это вообще работает?» ^^' нда...
26.09.2007 в 10:52

Тотальная неудачница и убийца жёстких дисков.
Ага, в свое время я именно замену Shell()'у искал и стал пользоваться WinExec(). Интересно, как сама Shell() работает.

Думаю, что через CreateProcess() ^^ Хотя дебанггер сказал бы яснее ^^

А вообще, как предполагается запускать готовую командную строку?

Что-то вроде:

PathToRAR = FindInPATH("RAR.EXE")
Cmd = PartToRAR & " " & Params & " """ & FileName & """"
Shell Cmd, vbShowNormal

Или не так?

хмм... странно ^^' не помню такого... разве что если пытаться закрыть работающее консольное приложение? тогда придется выжидать аж два таймаута, но в конце оно все-таки закроется...

Не закрывается ^^' Особенно если пытаться сначала консоль закрыть крестиком, а потом через Task List. Тут DOS ядро и вспучится...
03.10.2007 в 01:47

Voilà.
Думаю, что через CreateProcess() ^^ Хотя дебанггер сказал бы яснее ^^
надо будет на досуге покопаться...)
VBшные программы я когда-то раскапывал, но в саму библиотеку не лез...

Или не так?
Нет, я имею в виду... представь, пользователь в настройках сказал: вот-де, хочу при вот этом событии выполнять вот эту командную строку. Ну или, скажем, пишешь клиент для какой-нибудь файловой базы и нужно отсылать ссылки на произвольный download manager. Вот есть что-то вроде
download.exe /AddUrl "http://..."
WinExec(), как ты говоришь, устарел. Чем запускать эту командную строку?)

Не закрывается ^^' Особенно если пытаться сначала консоль закрыть крестиком, а потом через Task List. Тут DOS ядро и вспучится...
кстати, а речь идет о Win98 или Win98SE?)
04.10.2007 в 10:41

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

А CreateProcess() на что? ^_^ Первый параметр - имя екзешника, второй - параметры. Но! Если первый - NULL, то второй - имя екзешника с командной строкой ^_^ Чем не вариант?

кстати, а речь идет о Win98 или Win98SE?)

Win98 у меня только японская, а я работаю ещё с самого момента покупки первого компьютера в Win98SE.