Portál AbcLinuxu, 30. května 2024 01:40

QWebClient - demo

23.9.2009 00:13 | Přečteno: 1707× | GNU/Linux | Výběrový blog | poslední úprava: 27.9.2009 23:53

Díky nedávné zprávičce jsem se dozvěděl o QWebClient, což je způsob, jak zpřístupnit Qt aplikace přes web. Přišlo mi to naprosto úžasné, tak jsem se to rozhodl vyzkoušet. Webových frameworků pro AJAXové aplikace je spousta, ale naklikat si Qt aplikaci a zpřístupnit přes web, to je bomba :-)

Oficiální demo je nedostupné, prý „Try again later“. Spustil jsem vlastní demo na adrese: http://irc.qt.frantovo.cz/. Demo je jednoduchý chat.

Moc času jsem s tím nestrávil, tak jen v bodech:

Projekt je ve velmi rané fázi (jejich slovy „Greater Hack“) a dá se tedy očekávat, že tyhle problémy budou vyřešeny. Jedná se o nadějnou technologii pro publikování aplikací na webu (schválně píšu publikování, protože webové stránky bych v tom rozhodně nepsal a klasické AJAXové aplikace asi taky ne, na ty by se spíš dalo využít Wt)

Aktualizace 27. září 2009: doufám, že jste si všichni demo pěkně vyzkoušeli – jdu ho vypnout (měl jsem kvli tomu puštěný další počítač). Ale kompilace je jednoduchá, jistě to zvládnete. Jardík tu psal, že by se nemělo nahrazoval int → long a použít něco multiplatformního.

       

Hodnocení: 100 %

        špatnédobré        

Obrázky

QWebClient - demo, obrázek 1

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

23.9.2009 07:01 Pavel
Rozbalit Rozbalit vše Re: QWebClient - demo
Odpovědět | Sbalit | Link | Blokovat | Admin

Me se to libi.... a jak rikaz, pozitivni je ze to funguje

xkucf03 avatar 23.9.2009 08:45 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše segfault

aspoň občas :-)

Teď byl ten program spadlý – Segmentation fault.

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
xkucf03 avatar 23.9.2009 09:38 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: segfault

Už zase – program jsem nahodil, ale moc mě to nebaví, tak si aplikaci ještě užijte, dokud funguje, a nebo si rozchoďte vlastní instanci, je to jednoduché.

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
23.9.2009 09:30 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: QWebClient - demo
Odpovědět | Sbalit | Link | Blokovat | Admin
Jestli ono to nebude protokolem… ;-)
Ještě na tom nejsem tak špatně, abych četl Viewegha.
xkucf03 avatar 23.9.2009 09:44 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Protokol, TCP

Trochu ano ;-)

Víc by se mi líbilo, kdyby Qt mělo vlastní protokol postavený nad TCP a umožňující oboustrannou komunikaci. Oproti tunelování X protokolu přes SSH by to mělo výhodu ve v nižších datových přenosech a rychlejší odezvě. Nevýhodou by byla nutnost povolit na firewallech další port, případně tento protokol tunelovat přes SSH, což může být problém tam, kde je odchozí provoz omezen jen na HTTP – v takovém případě by tento protokol bylo možné tunelovat přes HTTP. Bylo by to lepší řešení, než mít HTTP jako primární protokol. Navíc by aplikace nemusela běžet ve webovém prohlížeči (proč taky) a mohla by vypadat jako normální desktopová aplikace.

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
23.9.2009 10:32 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Protokol, TCP
Já to myslel trochu jinak, dokončení mělo znít ale spíš aplikací, která počítá s tím, že její spojení se serverem nemůže umřít :-) HTTP je v tomhle úplně nevinně.

Ale proč honí Qt do prohlížeče, to taky netuším.
Ještě na tom nejsem tak špatně, abych četl Viewegha.
xkucf03 avatar 23.9.2009 13:40 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Protokol, TCP
HTTP je v tomhle úplně nevinně

Úplně ne -- je tu pěkně vidět, jak HTTP přidělává vývojářům práci, relativně dobrých výsledků se s ním nakonec dá dosáhnout, ale vyžaduje to dost ohackování. Kdyby se používal nějaký protokol postavený nad TCP a umožňující oboustranně posílat XML dokumenty, případně to celé zabalit do GZipu nebo použít binární protokol, ušetřilo by to dost práce.

 

Ale proč honí Qt do prohlížeče, to taky netuším.

Taky nevím, k čemu to je, víc by mi vyhovovalo, kdyby aplikace běžela mimo okno prohlížeče -- něco jako Java Web Start, akorát že by ani nebylo potřeba stahovat nějaké třídy, ale pouze by došlo ke spojení a aplikace by se na straně klienta jen vykreslovala.

 

 

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
23.9.2009 15:09 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Protokol, TCP
Úplně ne -- je tu pěkně vidět, jak HTTP přidělává vývojářům práci, relativně dobrých výsledků se s ním nakonec dá dosáhnout, ale vyžaduje to dost ohackování. Kdyby se používal nějaký protokol postavený nad TCP a umožňující oboustranně posílat XML dokumenty, případně to celé zabalit do GZipu nebo použít binární protokol, ušetřilo by to dost práce.
Tak si to přebereme: HTTP je postavené nad TCP, umožňuje oboustranně posílat XML dokumenty, zabalit je do GZipu nebo i přenášet binární data. Jestli není problém spíš v tom, jak to celé nalámat do prohlížeče.
něco jako Java Web Start, akorát že by ani nebylo potřeba stahovat nějaké třídy, ale pouze by došlo ke spojení a aplikace by se na straně klienta jen vykreslovala
Xka?
Ještě na tom nejsem tak špatně, abych četl Viewegha.
xkucf03 avatar 23.9.2009 16:33 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Protokol, TCP

 

umožňuje oboustranně posílat XML dokumenty

S tou oboustranností je právě problém, vůbec to není jednoduché a je to spíše hack (nebo exotické řešení, které funguje jen někde).

 

 

Jestli není problém spíš v tom, jak to celé nalámat do prohlížeče.

To souhlasím, přijde mi hloupé mít okno prohlížeče se vším všudy a uvnitř něj ještě okno aplikace. Sice existují věci jako Prism, ale pořád to není ono.

 

 

Xka

Xka jsou fajn, akorát ne vždy máš k dispozici dostatečnou šířku pásma, aby ty vzdálené aplikace fungovaly dostatečně svižně. Chtělo by u nich zlepšit kompresia optimalizovat je, nebo použít méně náročný protokol (jako je to webové Qt).

 

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
23.9.2009 22:42 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Protokol, TCP
Xka jsou fajn, akorát ne vždy máš k dispozici dostatečnou šířku pásma, aby ty vzdálené aplikace fungovaly dostatečně svižně. Chtělo by u nich zlepšit kompresia optimalizovat je, nebo použít méně náročný protokol (jako je to webové Qt).

Existuje jistá úprava Xvnc a rdesktop klienta, která prý umí na TCP serveru pustit X klienta, a na TCP klientovi zobrazovat jen okna X klienta bez kořenové plochy. To vše se schopností navázat přerušenou relaci. Bohužel si nevzpomenu, kde to roste, a ani nejsem jistý použitelností.

xkucf03 avatar 24.9.2009 00:57 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Protokol, TCP

Něco takového dělá NX (FreeNX) a taky funguje skrz SSH. Oproti samotným Xkům je úspornější a dá se s ním pracovat i přes ADSL připojení (jakž takž). Ale pořád je co zlepšovat – stejně jako v X se přenášeji bitmapy – pokud by se stavělo na tom webovém Qt, přenášely by se vektory (plus pár bitmap, např, pozadí tlačítka nebo posuvníku, ale to se přenese jednou a hotovo). Navíc je tu trochu rozdíl v zaměření – u NX musíš dát uživateli nejdřív přístup (jméno/heslo na úrovni OS), ale někdy se může hodit i anonymní přístup nebo přihlašování až uvnitř aplikace.

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
limit_false avatar 23.9.2009 10:00 limit_false | skóre: 23 | blog: limit_false
Rozbalit Rozbalit vše Re: QWebClient - demo
Odpovědět | Sbalit | Link | Blokovat | Admin

ale nepodařilo se mi ji rozchodit jinak, než že byla v rootu domény – každá aplikace tak potřebuje svůj virtual host

Protoze je tak napsana - v tom clanku na Qt Labs je videt ze posila "GET /neco" a "GET /necojineho" atd.

Ale v kazdem pripade zajimava zabavka ;-)

When people want prime order group, give them prime order group.
limit_false avatar 23.9.2009 10:18 limit_false | skóre: 23 | blog: limit_false
Rozbalit Rozbalit vše Re: QWebClient - demo

Nutnost Xek se da obejit spustenim neceho jako Xvnc nebo Xvfb. Ta cestina (UTF-8) by se nejspis vyresila nastavenim spravneho codecu pro texty pres QTextCodec::setCodecForCStrings.

When people want prime order group, give them prime order group.
mess avatar 23.9.2009 14:38 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: QWebClient - demo
Odpovědět | Sbalit | Link | Blokovat | Admin
Hm, asi se mi to povedlo minimalizovat :-). Nebylo to schválně, jen jsem chtěl vidět, co to udělá :-)
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
xkucf03 avatar 23.9.2009 14:51 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: QWebClient - demo

To už se mi taky jednou stalo. Naštěstí jsi minimalizoval jen svoji instanci, a tak stačí stisknout F5 a načte se znova :-)

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
Jardík avatar 23.9.2009 18:27 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: QWebClient - demo
Odpovědět | Sbalit | Link | Blokovat | Admin
Pokud používáte 64 bitový systém, neprojde vám kompilace → je potřeba upravit zdrojáky – hack: na hodně místech přepsat int na long.
A to jako proč? Zase nějaká prasárna typu přetypování pointerů na int/long? Pointer lze "bezpečně" přetypovat např. na ptrdiff_t či size_t, které mají stejnou velikost, ostatní datové typy nepřipadají v úvahu a je to prasárna stejně jako předpoklad, že na 64bit systému sizeof(long)==sizeof(void*).
Věřím v jednoho Boha.
Jardík avatar 23.9.2009 18:31 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: QWebClient - demo
A stojí to za ho*no, neumí to český znaky.
Věřím v jednoho Boha.
limit_false avatar 23.9.2009 22:48 limit_false | skóre: 23 | blog: limit_false
Rozbalit Rozbalit vše Re: QWebClient - demo

Je to research project, research project se typicky nejprve nahackuje, aby se zjistilo, zda to ma vubec vyznam. I kdyz sam bych misto tech intu pouzil uintptr_t, ale hacky a carky mam u garbage collectoru z neci paticky :-D

When people want prime order group, give them prime order group.
Limoto avatar 26.9.2009 19:29 Limoto | skóre: 32 | blog: Limotův blog
Rozbalit Rozbalit vše Re: QWebClient - demo
Odpovědět | Sbalit | Link | Blokovat | Admin

No to tvoje demo taky nefunguje...

xkucf03 avatar 26.9.2009 20:42 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše QWebClient - demo – konec

njn, přerušilo se síťové spojení a spadnul SSH tunel mezi servery :-)

Demo jsem ještě nahodil, tak si to můžeš vyzkoušet, ale dneska nebo zítra už to vypnu napořád – hučí mi kvůli tomu tady jeden počítač navíc.

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.