Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];

Вниз

JDMClient   Найти похожие ветки 

 
VirEx ©   (2006-06-25 22:43) [0]

здрасьте, воот решил сделать клиента форума мастаков для мобилы, для своей Nokia 6021 :)
это пре пре^4 альфа полу версия, поэтому... не пинайте ногами если что :)
работа:
- при запуске мидлета появляется список форумов: прочее, сети и т.п.
- жмем кн. "GO" и заходим в список тем выбранного форума, или жмем "Back"
- жмем кн. "GO" и ...видим ответы, можно выбрать Copy (копирование выделенного ответа в буфер обмена), Citate (переход в окно набора текста для отправки своего ответа в ветке, при этом автоматически вставляется текст ответа который был выделен), и Add message (просто заходим в окно набота текста ответа), или опять же жмем "Back"

конечно есть ограничения:
- запрашиваются не более 20 свежих веток в форуме
- и т.к. посты в ветке бывают огромными (кто что только не запихает, то код своей программы, то новости про футбол...) я ограничил количество показываемых постов до 4х, ...с нулевого поста по 3й :) иначе Оут Оф Мэмори на моей нокии (маловато памяти.. бум делать по другому)
- ..и пка что нельзя добавить свой ответ, также как и свою ветку

Товарисчи, если можно - постите сюда о багах, названия своих телефонов, и что хотелось бы добавить.

клиент сделан на MIDletPascal 2.02, код выложу позже, щас не до этого

http://winconsul.kladovka.net.ru/java/JDMClient/DMClient.jad
http://winconsul.kladovka.net.ru/java/JDMClient/DMClient.jar


 
McSimm(proxy)   (2006-06-25 22:48) [1]

Я не знаком с программироанием для телефонов, скажите, было бы удобнее, если бы протокол поддерживал SOAP и/или XML-RPC ?


 
VirEx ©   (2006-06-25 22:56) [2]

SOAP незнаю, но XML-RPC для мобильной VM это жуткие тормоза при парсинге, огромный мидлет и ..ну их нафиг проблемы) юзаем обычный HTTP, нам что GET что POST не сложно :)


 
VirEx ©   (2006-06-25 22:59) [3]

import java.io.*;
import javax.microedition.io.*;
import java.lang.*;

// class name must be prefixed with Lib_ and all letters except  
// the starting L must be lowercase
public class Lib_myhttp
{

public static String propName="";//
public static String propValue="";//

public static void setpostmethod(){
}

public static void setgetmethod(){
}

public static void setproperty(String name, String value){
propName=name;//
propValue=value;//
}

public static String loadurl(String URL){
    HttpConnection conn = null;
    InputStream is = null;
    String s = "";
    int i;
    String n,v;
    char chh=10;

     try {
         StringBuffer sb = new StringBuffer("");
         conn = (HttpConnection)Connector.open(URL);
         //conn.setRequestMethod(HttpConnection.POST);
         conn.setRequestProperty(propName,propValue);

         is = conn.openInputStream();
         int ch;
         while ((ch = is.read()) != -1) {
           sb.append((char)ch);
         }
         s=sb.toString();
         if (is != null)   is.close();
         if (conn != null) conn.close();

         }
     catch( IOException e ){}
     finally{}

     return s;

}

}


 
VirEx ©   (2006-06-25 23:02) [4]

хм, вобщем вот так примерно, не потёр я лишние переменные... :)
жду мнений


 
SergP.   (2006-06-25 23:16) [5]

На Сименсе CF75 будет работать?


 
Marser ©   (2006-06-25 23:33) [6]

Ух, спасибо большое! Завтра закачаю на мобилку.


 
VirEx ©   (2006-06-26 16:00) [7]


> [5] SergP.   (25.06.06 23:16)
> На Сименсе CF75 будет работать?

работает на телефонах которые поддерживают спецификацию MIDP1


 
Кручен-Верчен ©   (2006-06-26 16:20) [8]

А чем Opera Mini не устраивает?


 
Джо ©   (2006-06-26 16:23) [9]

> [8] Кручен-Верчен ©   (26.06.06 16:20)
> А чем Opera Mini не устраивает?

Наверное, тем, что это не клиент мастаков.


 
Rule ©   (2006-06-26 16:30) [10]

Кручен-Верчен ©   (26.06.06 16:20) [8]
наверное с тех же побуждений, по которым я пользуюсь клиентом, а не браузером на ноуте и стационарном компе


 
Другой   (2006-06-26 18:31) [11]

Моя идея! :)


 
VirEx ©   (2006-06-26 18:38) [12]


>  [11] Другой   (26.06.06 18:31)
> Моя идея! :)

нет, моя :)

я на мастаках уже давно не был, и только вчера увидел твой пост когда все ветки пересматривал которые ранее пропустил, но клиент то с момента моей ветки о документации J2ME был задуман


 
Другой   (2006-06-26 19:55) [13]

> VirEx ©   (26.06.06 18:38) [12]
>
> >  [11] Другой   (26.06.06 18:31)
> > Моя идея! :)
>
> нет, моя :)
>
> я на мастаках уже давно не был, и только вчера увидел твой
> пост когда все ветки пересматривал которые ранее пропустил,
> но клиент то с момента моей ветки о документации J2ME был
> задуман

Но все равно молодец! :) Ладно...


 
Pazitron_Brain ©   (2006-06-27 21:14) [14]

> [11] Другой   (26.06.06 18:31)
> Моя идея! :)

Говорил ведь надо организовать DelphiMaster on Phone Foundation :).


 
Pazitron_Brain ©   (2006-06-27 21:15) [15]

Давай те еще кто-нибудь этим займется? Будет конкуренция и качество мидлетов будет увеличиваться и увеличиваться :).
Максимус, молодец :).


 
VirEx ©   (2006-06-28 03:12) [16]

обновил клиента, теперь уже просто "пре альфа" :)
вобщем ломал голову как организовать подгрузку при скроллинге ответов в ветке, если на экране больше одного сообщения ...но опять всё упирается в парсинг HTML который жрет память так же как и отдельные сообщения... Out Off Memory как грится.

решил сделать проще: на экране одно сообщение, можно жать Next или Back и каждый раз ответ будет подгружаться, ...но :)  опять же есть ответы которые бывают огромны что приводит к OOM, в будущем сделаю проверку на размер подгрузки сообщений и будет выводиться чтот типа "сообщение не загружено, мало памяти", либо обрезать, т.е. не докачивать все символы...посмотрим :)

теперь думаю можно поработать с клиентом комфортней:
- в начале спрашивает с какого периода выбрать из сервера новые ветки, в часах.. ну например вводим 3, и покажутся все ветки которые были созданы либо обновились за последние 3 часа
- отображает в начале ответа текущий номер ответа и общее количество ответов в ветке
- можно перейти на заданный номер ветки (опция Go наряду с Copy, Citate и т.п.)

возможность добавления своего ответа либо ветки пока не введена ...дайте поспать :)


 
Kerk ©   (2006-06-28 09:32) [17]

VirEx ©   (28.06.06 03:12) [16]

> но опять всё упирается в парсинг HTML который жрет память
> так же как и отдельные сообщения...

А как же опера работает?


 
tesseract ©   (2006-06-28 09:44) [18]


> А как же опера работает?

Она не на J2ME написано явно.


 
Pazitron_Brain ©   (2006-06-28 09:53) [19]

> [18] tesseract ©   (28.06.06 09:44)
>
> > А как же опера работает?
>
> Она не на J2ME написано явно.

Ну конечно. У меня только j2me работает.


 
VirEx ©   (2006-06-28 11:23) [20]


>  [17] Kerk ©   (28.06.06 09:32)
> VirEx ©   (28.06.06 03:12) [16]
>
> > но опять всё упирается в парсинг HTML который жрет память
>
> > так же как и отдельные сообщения...
>
> А как же опера работает?

Опера мини использует прямой приём объектов отображения со своей прокси.
зайди на сайт http://www.yandex.ru/ через ПК, сколько? 12 Кб страничка без рисунков, а теперь зайди через опера мини... сколько? 3 Кб (тоже без рисунков)
я предполагаю такой механизм работы оперы мини:
- мидлет Опера мини работает через свой "операвский" прокси в инете,
т.е. запрашивает URL
- прокси качает запрошенную страничку и преобразует в формат данных воспринимаемый оперой мини
- запрошенные данные (может даже и в сжатом виде, например gzip) напрямую преобразуются в объекты на страничке: текст, его цвет, местоположение; кнопки; поля ввода. каждый элемент в j2me это класс, даже переменная integer это класс со своими свойствами и методами.
благодаря прямому преобразованию данных в страничку отображаемую на дисплее сотового телефона, без затрат мощностей телефона и времени на преобразование HTML в удобочитаемый вид, опера мини и работает так быстро, да еще и мало траффика потребляет.
даже опция "более высокое качество" картинки тому подтверждение (типа указание прокси, качать ли картинку с её истинным качеством).


>  [18] tesseract ©   (28.06.06 09:44)
>
> > А как же опера работает?
>
> Она не на J2ME написано явно.

а на чем?) на asm2me? :)


 
VirEx ©   (2006-06-28 12:35) [21]

исходник на MIDletPascal языке:
http://winconsul.kladovka.net.ru/java/JDMClient/DMClient.zip

дополнительные модули без которых проект не скопмилится
(исходники *.java и сами модули/классы *.class, модули скопировать
в папку С:\Program Files\MIDletPascal\Libs)
http://winconsul.kladovka.net.ru/java/JDMClient/Libs.zip


 
Kerk ©   (2006-06-28 12:38) [22]


> VirEx ©   (28.06.06 11:23) [20]

Делай так же :)


 
VirEx ©   (2006-06-28 12:53) [23]


> [22] Kerk ©   (28.06.06 12:38)
> Делай так же :)

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


 
Kerk ©   (2006-06-28 12:56) [24]


> VirEx ©   (28.06.06 12:53) [23]

Занялся бы сразу уж основательно :)


 
VirEx ©   (2006-06-28 15:13) [25]


> Kerk ©   (28.06.06 12:56) [24]
>
>
> > VirEx ©   (28.06.06 12:53) [23]
>
> Занялся бы сразу уж основательно :)

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


 
tesseract ©   (2006-06-28 15:20) [26]


> я предполагаю такой механизм работы оперы мини:- мидлет
> Опера мини работает через свой "операвский" прокси в инете,
> т.е. запрашивает URL- прокси качает запрошенную страничку
> и преобразует в формат данных воспринимаемый оперой мини-
>  запрошенные данные (может даже и в сжатом виде, например
> gzip) напрямую преобразуются в объекты на страничке: текст,
>


навернёка используется стандартный для HTTP тип данных deflate/gzip.


 
VirEx ©   (2006-06-28 15:32) [27]


>  [26] tesseract ©   (28.06.06 15:20)
> навернёка используется стандартный для HTTP тип данных deflate/gzip.

ну наверняка то да, даже скроей всего, но думаю что саму страничку HTTP опера не грузит.
есть основания:
- видел мидлет по работе с zip архивами, в котором сам класс реализующий работу с архивами - 70-80 Кб
- и сам парсинг + "разрисовка" HTML"я в "разноцветный" текст, таблицы и т.п. обошелся бы мидлету не менее 30-50 Кб
- представь: загрузила опера сжатую страничку в 3 Кб, затем распаковала на 12 кб, затем пропарсила и создала каждый элемент отображения (текст, строка ввода, линк и т.п.). получается: раздутая инфа, + парсинг отнимающий мемори и время, и вновь созданные элементы которые тоже кушают память, + всё выполняется в отдельном потоке, но всё работает на моём сотике где максимальный размер мидлета не должен превышать 127 Кб и работает быстро.


 
Pazitron_Brain ©   (2006-06-29 14:30) [28]

Motorola c650

Форумы обновляет, а темы - нет. Если еще раз нажму на GO, то вылетает.


 
VirEx ©   (2006-06-29 22:03) [29]


>  [28] Pazitron_Brain ©   (29.06.06 14:30)
> Motorola c650
>
> Форумы обновляет, а темы - нет. Если еще раз нажму на GO,
> то вылетает.

это изза пока еще сырого парсинга html, видимо надо делать на яве, иначе при парсинге (кто читал мой кривой код на MIDletPascal) создаётся куча объектов стрингов, и никак их там не close и не free


 
VirEx ©   (2006-06-30 00:28) [30]

Gero, я совсем запутался как добавить своё сообщение:
методом get так?: http://www.delphimaster.ru/cgi-bin/forum.pl?id=[номер_ветки]&n=[номер_форума]&user=[имя_пользователя]&topsw=[пароль _пользователя]&text=text
или методом post:
User-Agent=useragent  
name=имя_пользователя
password=пароль_пользователя
email=email
text=text


 
Gero ©   (2006-06-30 01:46) [31]

Методом post, только не password, а topsw.


 
VirEx ©   (2006-07-01 09:49) [32]

test


 
VirEx ©   (2006-07-01 09:52) [33]

1


 
VirEx ©   (2006-07-01 09:54) [34]

2


 
VictorT ©   (2006-07-01 10:41) [35]

Может, лучше не парсить html, а например, воспользоваться существующим протоколом для клиентов?


 
VictorT ©   (2006-07-01 10:42) [36]

З.Ы. На nokia 7210 будет работать?


 
VictorT ©   (2006-07-01 10:44) [37]


>я предполагаю такой механизм работы оперы мини:
> - мидлет Опера мини работает через свой "операвский"
>прокси в инете,
>т.е. запрашивает URL
> - прокси качает запрошенную страничку и преобразует в
> формат данных воспринимаемый оперой мини

Всё правильно, только тут и предполагать не надо, так оно и есть, об этом и на сайте оперы мини написано.


 
Gero ©   (2006-07-01 10:56) [38]

> [35] VictorT ©   (01.07.06 10:41)

Протокол возвращает html.


 
VirEx ©   (2006-07-01 11:08) [39]


>  [38] Gero ©   (01.07.06 10:56)

может я что-то не понимаю, но ответ не добавляется ([32]-[34] это я хотел посмотреть через проксю http заголовки).
вобщем так,
отправляется:
POST /cgi-bin/forum.pl?n=3&id=1151261024 HTTP/1.0
Content-Type: text/html
Accept: text/html
User-Agent: JDMClient 1.0.0
name: user
topsw: pass
email: a@a.com
signature: signature
n: 3
id: 1151261024
text: test
Content-Length: 0
Host: www.delphimaster.ru

ответ от сервака:
HTTP/1.1 200 OK
Date: Sat, 01 Jul 2006 06:26:13 GMT
Server: Apache/1.3.34 (Unix) PHP/4.4.2
Content-Length: 29023
Connection: close
Content-Type: text/html; charset=windows-1251


 
VirEx ©   (2006-07-01 11:10) [40]


> [36] VictorT ©   (01.07.06 10:42)
> З.Ы. На nokia 7210 будет работать?

[7] VirEx ©   (26.06.06 16:00)



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.56 MB
Время: 0.044 c
15-1154071925
umbra
2006-07-28 11:32
2006.08.27
Литература/ссылки по проектированию баз данных


4-1146282985
Yasher
2006-04-29 07:56
2006.08.27
Virtual Drive


1-1152656166
01
2006-07-12 02:16
2006.08.27
Мне надо дать возможность ввода по маске частично


1-1152863944
vigo_
2006-07-14 11:59
2006.08.27
Выделение цветом строк в TDBGrid.


2-1154918244
kobik.
2006-08-07 06:37
2006.08.27
Stream - пустой / не пустой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский