Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Vyvíjíme multiplatformní programy na Linuxu (1)

Jakub Hegenbart aura:85
10. 3. 2005 2:49 Nový

Kamenování?

celé vlákno
Myslím, že příznivci Open Source nikoho kamenovat nebudou. Kamenovat budou příznivci Free Software :)))

Ale jinak pěkné, ač bez dalších dílů v tuhle chvíli nevím skoro nic...a kdyby jen dnešní aplikace netvořily takové příšerné slepence kódu...ne, že bych jim nedůvěřoval, pokud jde o funkčnost. Ale člověk se občas v tom kódu ztrácí :))) (zlatý ST-80 :)
Martin Beránek
10. 3. 2005 6:58 Nový

Re: Kamenování?

celé vlákno
u vetsiny objektovych jazyku dnes plati, ze pokud znas jazyk je to jen maly kousek k tomu zacit programovat. nejdulezitejsi je znat knihovny. ackoli python vubec nezvladam - programuji v jave - tak verim tomu, ze clovek ktery je v py zbehli tomuto kodu lehce porozumi (kdyby to nekdo napsal takhle nejak v jave tak bych to asi chapal:-)

zajimavy clanek... diky
Jakub Hegenbart aura:85
10. 3. 2005 12:27 Nový

Re: Kamenování?

celé vlákno
U těch nejlepších se složitost jazyka limitně blíží nule a schopnosti knihovny zase nekonečnu :)

Já to samozřejmě chápu, nic proti tomui nemám, ale přeci jen se cítím mírně pohodlněji v převážně homogenním prostředí (asi to bude deformace, já vím :). Už jen proto, kdybych se snažil narvat to do co nejmenšího objemu. Už vidím, jak třeba embedded aplikaci pro 8MB stroj skládám z komponent v několika jazycích, aby se to tam přád ještě vešlo :)
Štěpán
Štěpán (neregistrovaný)
10. 3. 2005 6:58 Nový

Jenom drobnůstka...

celé vlákno
"Při řešení této problematiky vedly v zákysech Windows, i když nevím, jestli za to přímo mohly."
Tahle věta mi nedává moc smysl.
Jinak je to docela zajímavý, akorát sem teda zvědav na další díly.
Johanka Doležalová aura:100
10. 3. 2005 9:13 Nový

Re: Jenom drobnůstka...

celé vlákno
Taky mi to chvili trvalo zparsovat, ale veta smysl ma :)
Jakoze Windowsy, neznamo, zda vlastni vinou, zakysavaly vic :)
Pavel Křívánek aura:96
10. 3. 2005 9:28 Nový

Re: Jenom drobnůstka...

celé vlákno
Já to pochopil tak, že "zakysával" autor při řešení problémů.
Honza
Honza (neregistrovaný)
10. 3. 2005 8:11 Nový

pro neznalé windowsáky s modemem

celé vlákno
Řešil jsem návrh technologií multiplatformního (Linux, Windows) jednoduchého GUI programu, který by šel distribuovat na Windows v binární formě a vše potřebné (pro běh na "holých" windows bez jakýchkoli doinstalovaných knihoven nebo prostředí typu GTK+, Qt, wxWindows, JRE nebo python.exe) šlo přinést na jedné disketě nebo stáhnout po modemu. Na Linuxu by musela fungovat diakritika a přepínání klávesnice (to vylučuje např. FLTK). Nevymyslel jsem nic lepšího, než vytvořit vlastní C++ GUI knihovnu nad Win32API x (Xlib nebo Qt, GTK+, ...) a napsat program nad ní. Jsem zvědavý, jestli autorovo řešení splní mé nároky. Rád se proto nechám poučit o detailech a úskalách převodu z *.py do *.exe.
Jindra Šaršon aura:97
10. 3. 2005 9:34 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
No ale přesně to, o čem píšeš, dělají wxWidgets (dříve wxWindows). Tj. slouží jako jakási mezivrstva mezi GTK / Win32. Samozřejmě asi obsahují spoustu tříd, které nevyužiješ, na druhou stranu psát si vše sám a znovu - na to je třeba dost času.

Krom toho si myslím, že s modemem jde tahat celkem v pohodě soubor do cca 4 MB. Stáhnutí trvá necelých 20 minut a to je ještě pro většinu uživatelů únosné.

Mimochodem hezky příklad toho, kdy si autor napsal vše úplně od základů, je slovenský "photoshop" pixel32 - http://pixel32.box.sk.
Honza
Honza (neregistrovaný)
10. 3. 2005 9:58 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
A právě wxWidgets + GTK by si musel uživatel Windows stáhnout, takže to není to, co jsem chtěl. Opravdu mi jde o to, aby to, co se musí tahat na holý a typicky nainstalovaný systém (jak Windows tak Linux) mělo do pár set kB a dokázala to i úplná lama. Na ten pixel32 se podívám.
rdk
rdk
10. 3. 2005 10:21 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
wxWindows nepotrebuji na woknech GTK. pod pythonem jde samozrejme jeste pouzit TCL/TK. (to je pak jeste mensi).
Michael Heca
10. 3. 2005 11:16 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
Tcl/Tk jde pouzit i bez pythonu. Samospustitelny starkit ma kolem 1M a i s aplikaci se vetsinou vejde na disketu.
Václav Šír aura:100
10. 3. 2005 13:02 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
Jak bylo řečeno. Program psaný s wxWidgets lze na Linuxu slinkovat s Gtk+ nebo Motif. Na Windows jako nativní Win32API aplikaci a na Macu jako nativní kdovíCoSeTamPoužívá. Navíc je k dispozici i celkem pěkný klikací editor (wxGlade). Má spoustu nedostatků, ale asi nic lepšího v této kategorii není (Java je jiná kategorie). Více viz http://wxwidgets.org/
honza
honza (neregistrovaný)
10. 3. 2005 14:10 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
jeste se musi jit na kafe, kdyz se v wxwidgets pod windows ma natahnout 10000 elementu do List-Controlu? Umi listcontrol pod unixem justify_right/left u list-controlu pro jednotlive sloupce?, je mozno kdyz....?, umi..?,
tdc
tdc
10. 3. 2005 16:01 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
strelim ted od boku, s wx jsem delal jen chvili pod pythonem (lin & win):

Q: jeste se musi jit na kafe, kdyz se v wxwidgets pod windows ma natahnout 10000 elementu do List-Controlu?
A: ve wxLC_REPORT rezimu neni problem pouzit wxLC_VIRTUAL. pokud se snazite nacitat 10k polozek do icon-view, asi mate hodne zvlastni aplikaci

Q: Umi listcontrol pod unixem justify_right/left u list-controlu pro jednotlive sloupce?
A: "pod unixem" znamena pod wxGTK, wxMotif, nebo snad pripadne wxX11? pod wxGTK umi.

Q: je mozno kdyz....?
A: ano

Q: umi..?
A: 42
JJ
JJ (neregistrovaný)
11. 3. 2005 14:36 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
Cool, ty mas doma Hlubinu mysleni? Pujcis? :-D
Michal Molhanec aura:100
10. 3. 2005 18:17 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
muj tip: GCJ + SWT + UPX

ja osobne mam wxWidgets dost nerad, IMHO osklivy API a`la MFC, problemy rozchodit to s GTK 2, widgety maji defaultne bordery, coz vypada hnusne kdyz je takovejch widgetu par do sebe vnorenejch a je nutny je odstranovat, ale aby na vsech platformach zustal aspon jeden atp.

nejlepsi je mit dobre rozdelenou aplikaci a mit GUI napsany dvakrat, tomu se nic nevyrovna
Pavel Stárek aura:67
10. 3. 2005 20:58 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
Ach jo, to mělo být o něco níž, omlouvám se.
Pavel Stárek aura:67
10. 3. 2005 21:01 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
Hmm, zas blbě, já se z toho po*eru. Zlatej starej root, tohle je nepřehledný jak prase. Opravdu už sem chodit nebudu. Já chci www.root.cz/old !!!
Petr Fischer
Petr Fischer (neregistrovaný)
10. 3. 2005 19:25 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
FOX Toolkit
Pavel Stárek aura:67
10. 3. 2005 20:56 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
Bohužel nevyhovuje. Qt ve verzi 3.x jsou pro Windows pod nějakou Trolltech licencí, která je jak správně tušíte, za penízky. Ale Qt 4 by snad měla být GPL i pro Windows pro GPL aplikace.

Citace:

Qt for Windows will be available under both a commercial license and the open source GPL license starting with the next major production release of Qt, version 4.0, which is expected in the second quarter of 2005. With the GPL availability of Qt for Windows, Trolltech will offer dual licensing of Qt on all supported platforms.


Zbytek na http://www.trolltech.com/newsroom/announcements/00000192.html

Už aby to bylo :-)
Pavel Stárek aura:67
10. 3. 2005 21:04 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
Omlouvám se tady to být nemělo, to mělo být k tomu příspěvku níž o Qt. Nový root je nepřehledný, obvzvláště tedy ty diskuze.
Honza
Honza (neregistrovaný)
11. 3. 2005 7:56 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
Nikoliv. Nastavte na Linuxu anglickou klávesnici, spusťte program ve Fox toolkitu, napište 'abc', přepněte na českou a napište 'ťuťuťuťutínek ďábel Úchyl'. Podle mě se vám to nepovede.
honza
honza (neregistrovaný)
11. 3. 2005 10:54 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
mate s tim fox-toolkitem zkusenosti na trochu hlubsi urovni? Jak je to s rychlosti u velkych aplikaci, kdyz mate velmi mnoho tech handleru na event-funkce - je pravda ze toolkit hleda ty funkce pres hash a kdyz je treba nekolik 1000 volani nejakych eventu, jestli to neni pomale?
Honza
Honza (neregistrovaný)
11. 3. 2005 11:38 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
Mám s FOX Toolkitem jen povrchní zkušenost. Staticky slinkovaný jednoduchý program je opravdu velmi malý. Ale jak už jsem psal blbl mi (pouze na Linuxu) český vstup např. do edlajn u znaků vyžadující dvojí ťuknutí do klávesnice (ď ť ň...). Jak se chová prostředí v (jakémkoli smyslu) náročnějších projektech bohužel nevím.
makk
makk (neregistrovaný)
10. 3. 2005 20:13 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
Tedy nerozumim presne tomu, proc treba Qt-cka nevyhovuji? Je nejaky problem krome vysledneho exe souboru jeste "poslat" uzivateli nejake dll-ko?
Luboš Doležel
10. 3. 2005 20:50 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
Qt nevyhovuje, protože ho není možno zdarma použít v closed source projektech. A ceny Qt jsou IMHO vysoké...
makk
makk (neregistrovaný)
10. 3. 2005 22:08 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
Tak cena je jiste duvod. Nicmene se muzeme tesit, ze ve seruhem ctvrtleti se licence Qt pro Widle zmeni. Snad...
Ale na moji otazku ohledne dll-ek to neodpovida...
Radim D.
Radim D. (neregistrovaný)
14. 3. 2005 22:04 Nový

Re: pro neznalé windowsáky s modemem

celé vlákno
Opravdu FLTK neumožňuje přepínání klávesnice? Já se to marně nějak snažím rozchodit. Mám to vzdát? :-( Ve win diakritika funguje. V Linuxu nemůžu napsat například ď nebo ň. Zvláštní je, že to ale jde překopírovat přes schránku. Tedy font je v pořádku, zobrazit to jde. Jen je problém s klávesnicí abych to napsal.
Jiří Hnídek
Jiří Hnídek (neregistrovaný)
10. 3. 2005 9:22 Nový

Pěkný článek

celé vlákno
Čau,
pěkný článek! Dobře napsaný, se zajímavým obsahem. Těším se na další díly a nešetři detaily a všemi zkušenostmi, které jsi během vývoje tvé apliace nabyl (převod z ".py" na spustitelný soubor by mě fakt zajímal).

Jirka
David Zirhut
David Zirhut (neregistrovaný)
10. 3. 2005 9:31 Nový

Zajimavy clanek

celé vlákno
Diky za zajimavy clanek a namet. Taky bych vas rad poprosil, abyste se v ramci moznosti podelil o vsechny mozne zkusenosti a detaily.
Moc se tesim na dalsi dily.
Milos
Milos (neregistrovaný)
10. 3. 2005 9:39 Nový

Výborný článek

celé vlákno
Děkuji za skvělý článek. Pseudokód Pythonu lze pokud vím snadno dekompilovat, čili uložení v binárním souboru je spíš symbolické - kdo se ke zdrojáku chce dostat, dostane se. Ale o to nejde.

Rozhodně je legitimní dělat closed source pro Linux. Těším se na pokračování.
Petr Podaný
10. 3. 2005 10:57 Nový

pytoexe

celé vlákno
Taky se pripojuji k probrani pytoexe
.
. (neregistrovaný)
10. 3. 2005 13:35 Nový

.

celé vlákno
py2exe
Pavel Křívánek aura:96
10. 3. 2005 13:49 Nový

wxSqueak

celé vlákno
Příznivci Smalltalku se mohou mimo jiné začít poohlížet po projektu wxSqueak

http://www.comtalk.net/Squeak/86
http://homepage.mac.com/rgayvert/wxsqueak.html

Zatím je sice dostupná jen verze pro Windows a MacOS (na linuxovou VM si budeme muset ještě nějakou chvíli počkat), nicméně již nyní se nachází v použitelném stavu a na dalších verzích se usilovně pracuje.
MiG
MiG (neregistrovaný)
11. 3. 2005 12:02 Nový

Re: wxSqueak

celé vlákno
Příznivci Ruby mohou využít wxRuby, TCL/TK, FOX nebo i qtRuby :-))) No flamewar, hlavní je, že skriptovací jazyky mají budoucnost.
Pavel Křívánek aura:96
11. 3. 2005 18:35 Nový

Re: wxSqueak

celé vlákno
Tohle je podpásovka, protože Squeak si sebou primárně nosí celé vlastní binárně přenositelné grafické rozhraní a podpora externích GUI toolkitů je jen třešnička na dortu. A označit Smalltalk za skriptovací jazyk je, mírně řečeno, silně zavádějící. Ale flámoval bych kvůli tomu nerad.
Januš Drózd
Januš Drózd (neregistrovaný)
10. 3. 2005 14:19 Nový

Binární přenositelnost

celé vlákno
Nad titulkem článku jsem zajásal, po přečtení mám pocit, že bude řešit pouze výsek ze skutečného rozsahu problému. Pro nový projekt lze jistě zvolit jazyk Python, v reálném světě však převládají projekty, do nichž již byly vloženy desíky, stovky člověkoroků.

Nejlepší multiplatformní nástroj, který jsem zatím našel, jsou wxWidgets, to však neznamená, že fungují bez problémů - můj seznam záludností, podivností a chyb ve wxWindgets už má dost stránek.

Nesmírně bych uvítal článek o binární přenositenosti mezi Linuxovými platformami. Například projekt v C++ sestavený na SuSe 9.2 nelze použít ani na SuSe 9.1. Knihovny stdc++ a libgcc můžete sice přilinkovat staticky, ale pro libc není statické linkování řešením, takže při instalaci na cílový systém nastane problém s verzí GLIBC. Kompilovat projekt se starší verzí libc také moc nejde, protože si s ní nerozumí crt1.o. Zkoumal někdo tento problém?
honza
honza (neregistrovaný)
10. 3. 2005 15:37 Nový

Re: Binární přenositelnost

celé vlákno
...Nejlepší multiplatformní nástroj, který jsem zatím našel, jsou wxWidgets...

je to pravda, ze jestlize musite napsat nejaky novy widget, ktery nemuzete odvodit ze stavajicich trid, tak ze musite kvuli multiplatformite napsat odpovidajici kusy software v gtk+ a v mfc. Jestlize ano, tak pak je ten tool nesmyslny pro _skutecne_ vyvojare, protoze by mel prave aplikacniho programatora drzet v patricne vzdalenosti od gtk+/mfc specialit, nebo?
Januš Drózd
Januš Drózd (neregistrovaný)
10. 3. 2005 16:21 Nový

Re: Binární přenositelnost

celé vlákno
S MFC nemají wxWidgets nic společného. Při vývoji nových tříd záleží na tom, zda se s požadavky vejdete do toho, co nabízejí obecné abstrakce pro "okno", "událost" atd. Pokud ano, pak programujete pouze ve WX API. Pokud ne, pak musíte klesnout k WIN API, GTK2 API atd. U mně druhý případ nastal jen zcela výjimečně, třeba když mi nevyhovovala koncepce tooltipů ve wxWidgets.
Jindra Šaršon aura:97
10. 3. 2005 16:16 Nový

Re: Binární přenositelnost

celé vlákno
No právě proto, že je problematika psaní multiplatformních aplikací tak obsáhlá, jsem hned v anotaci upozornil na to, o čem to bude. Hlavním cílem je natrknout vývojáře, kteří se rozhodují o psaní nového projektu, aby použili nástroje a postupy, které zajistí snadnou portaci. Bohužel mám pocit, že alespoň u nás to rozhodně není samozřejmostí.

(Ne)přenositelnost mezi Linuxy je podle mě jedna z největších nevýhodl Linuxu. Podle mě se na to moc nemyslelo, protože ke všemu jsou přeci zdrojáky a není problém program na každé platformě zkompilovat. Když pak ale přijde na komerční projekty (např. Oracle a pod.), tak aby člověk měl jen jednu z mála doporučených distribucí. Věřím, že se to časem zlepší.
tony
tony (neregistrovaný)
10. 3. 2005 19:45 Nový

chown bez roota?

celé vlákno
"... může být instalován i bez práv roota"

S tim chown a chmod pak preji bez roota hodne stesti. ;-)

Jinak clanek podle me muze mit smysl jen tehdy, kdyz nebude svazovan s konkretnim jazykem.
V populaci nelze predpokladat nijak zvyseny pocet sebemrskacu, kteri si zvoli pro napsani hry python. ;-) Z tohoto pohledu byl pekny priklad ten s /var/games, skaredy priklad je ten s temi seredne dlouhymi radky na zjisteni dom. adresare uzivatele.
Jindra Šaršon aura:97
10. 3. 2005 22:50 Nový

Re: chown bez roota?

celé vlákno
S tim chown je to samozrejme vytrzene z kontextu, jak to je udelane presne bude asi v nekterem z pristich dilu. K tomu pythonu - jasne, ze na Python nejsou lide (v CR) prilis zvykli, ovsem je to tak jednoduchy jazyk, ze se v nem daji pekne ukazat obecne principy. A to i s tim zjistovanim domovskeho adresare - stejne se na to vola win32 api a ta bude stejna i v C++ nebo v cemkoliv jinem.
Ivo Danihelka
Ivo Danihelka (neregistrovaný)
11. 3. 2005 1:06 Nový

Re: chown bez roota?

celé vlákno
V čem byste psal hru, když ne v Pythonu?
Pygame je opravdu výborná knihovna, snadno použitelná a velmi nápomocná.
Časově nejnáročnější operací je výkreslování a to provádí SDL na nižších vrstvách.

Pokuď se píšete hry s mnoha levely, dialogy, animacemi, stejně se nevyhnete použití nějakého skriptovacího jazyka pro popis levelů. Vím o použití zabudovaného Pythonu, Lua, Lispu, Ruby.
HKMaly aura:99
11. 3. 2005 18:35 Nový

Re: chown bez roota?

celé vlákno
U me python odpadl hned na startu diky vyuziti 2D layoutu. Zlaty zavorky.
standa
standa (neregistrovaný)
11. 3. 2005 0:01 Nový

domovsky adresar

celé vlákno
nebylo by mozne pouzit pro zjisteni domovskeho adresare na linuxu:
blabla = os.environ['HOME'] + "/.myApp"
Pichi aura:75
11. 3. 2005 9:11 Nový

Re: domovsky adresar

celé vlákno
Jistě. Na všech pořádných OS to tak jde. Na parodiích se musí používat složitější postupy. No a v článku je snad dost jasně napsáno, že kvůli parodii se tam dělají ty opičky.
Daniel Novotný
11. 3. 2005 15:03 Nový

díky za článek

celé vlákno
už se těším na další díl
jkt
jkt
11. 3. 2005 16:48 Nový

zapis do /usr/..., /var/...

celé vlákno
nejak mi unika duvod, prc by si mela hra ukladat sva data jinam nez do ~/.myapp/ - muzete mi to nekdo vysvetlit? prece kdy ji bude chtit uzivat vice uzivatelu, nebude user a chtit vyuzivat cokoliv zapsane userem b, ne?
Jindra Šaršon aura:97
11. 3. 2005 18:17 Nový

Re: zapis do /usr/..., /var/...

celé vlákno
Prave ze jo. Jako priklad jsem uvedl tabulku se skore. Presne takhle to dela docela dost her.
jkt
jkt
14. 3. 2005 20:25 Nový

Re: zapis do /usr/..., /var/...

celé vlákno
OK, diky. Stejne bych tam radsi videl (volitelne, samozrejme) nejakej inet server, kdyz uz se chci porovnavat s jinejma uzivatelama, tak proc jenom u me na stroji, ze. A kdyz neni server dostupny, tak holt nekam do $HOME. Ale to je jenom muj nazor.
Zasílat nově přidané příspěvky e-mailem