Portál AbcLinuxu, 30. dubna 2025 12:42
Nemyslim si, že by opensource bylo o tom, vydělat velké peníze, tomu snad nevěří ani v Redhatu.
Problém s originálníma nápadama je ten, že jejich "kvalitu" zjistíš až když je zrealizuješ, což znamená dost značný úsilý. V poslední době jsem například "měl nápad" (tzn. hodily by se mi) na dvě další podobně složitý aplikace jako je Hypercube. Jenomže pustit se do něčeho takovýho s vidinou, že to kromě mě s vysokou pravděpodobností bude nakonec používat pár desítek lidí...
Jenomže pustit se do něčeho takovýho s vidinou, že to kromě mě s vysokou pravděpodobností bude nakonec používat pár desítek lidí...V první řadě to člověk píše sám pro sebe a ne pro ostatní. Zveřejnění je jen služba ostatním aby nemuseli začínat na zelené louce v případě, že se ocitnou v podobné situaci, aby si mohli opsat nějaký nápad (moderně se to opisování zove sdílení), atd.
Účelem mého konkrétního projektu bylo si vyzkoušet, co všechno obnáší vytvořit a spravovat vlastní "reálný" opensource projekt. Což se myslim povedlo, protože mi to mimo jiné dalo odpověď na otázky typu: "Proč sakra k tomuhle projektu není žádná dokumentace, žádné příklady, a v případě GUI aplikací ani pitomý screenshot? Proč to sakra nejde skompilovat a poslední balíček/instalátor je k verzi co vyšla před rokem a půl?", který si pokládám vždy když hledám nějaký speciální tool/knihovnu.
Není zrovna potřeba stát se díky svému projektu slavným, ale některé (nezábavné) věci vás prostě donutí udělat až zájem lidí (nebo peníze, ale o těch se v opensource jenom mluví a nikdo je ještě nikdy neviděl ). Projektů ve stavu "pro mě dobrý" je na internetu mraky, ale když dojde na to to použít, začnete chápat, kde se v lidech bere ta implikace opensource => nepoužitelnej bastl.
nejlépe něco jako Doxygen nebo JavadocNa tom IMHO vůbec nesejde. Důležité jsou spíš komentáře v kódu* – z nich si ten JavaDoc/Doxygen může každý vygenerovat sám, to je minimum práce (nebo spíš v případě Javy ani nic generovat nebude a prostě se na to koukne v IDE). Spíš než tahle nízkoúrovňová dokumentace je důležitější nějaký celkový obrázek, architektura – rozepsat to v pár odstavcích a pár diagramech – mnohem cennější než automaticky generovaná dokumentace. *) samozřejmostí by měl být popis u každé třídy a metody, k čemu slouží, jaký je její smysl (ne co dělá, to si přečtu v kódu). Bohužel na to spousta lidí kašle…
Na tom IMHO vůbec nesejde. Důležité jsou spíš komentáře v kódu* – z nich si ten JavaDoc/Doxygen může každý vygenerovat sám, to je minimum práce (nebo spíš v případě Javy ani nic generovat nebude a prostě se na to koukne v IDE).Doxygen a Javadoc jsou komentáře v kódu
Spíš než tahle nízkoúrovňová dokumentace je důležitější nějaký celkový obrázek, architektura – rozepsat to v pár odstavcích a pár diagramech – mnohem cennější než automaticky generovaná dokumentaceTo lze samozřejmě v Doxygenu popsat taky. A i ta automaticky generovaná dokumentace umí udělat hodně cenných diagramů.
/** * @brief Smoothness enumeration * @see someFunctionUsingIt */ enum Smoothness { SMOOTH_DEFAULT = 0, ///< Default smoothness SMOOTH_DRAFT = 0, ///< Draft smoothness SMOOTH_NORMAL, ///< Normal smoothness SMOOTH_FINEST ///< Finest smoothness };Křížové odkazy umí dělá
@see
, hodně složité stránky jde dělat třeba pomocí @subpage
nebo @section
, nakonec tam můžete použít i LaTeX.
enum type {} alias;
a pak neschopnost pochopit alias ve void fce(alias identifier);
. Fakt si už nevzpomínám.
Myslim ze v tomhle pripade je problem v prvnim bode.
Ano, problém je v tomhle případě zcela jistě v prvním bodě, konec konců je o tom celý ten zápisek
Autor napsal program, protoze se mu nechtelo instalovat Javu.
Ano, ale takhle právě funguje opensource. Ten nemá rád Javu, tak začne dělat variantu v C++. Ten zas nemá rád GTK, tak začne dělat variantu v QT. A další opačně...
PS: uz mas instalator pro Mac-a?
Na instalátor se vám každej macista vykašle. Pokuď to nejde přetáhnout z dmg do Applications, tak je to pro něj bastl. Nicméně alespoň co se týče QT aplikací, tak macdeployqt
to řeší celkem dobře.
nativní na dané platformě včetně look & feelQt má do nativního looku na Win co dohánět, ale snaží se. V Linuxu nativní look ... tam je nativní snad všechno.
Qt má do nativního looku na Win co dohánět, ale snaží se.Na Windows XP IMHO QT zapadá líp, než na Windows 7, ale v zásadě to jsou jenom drobnosti. Když to srovnám s GTK nebo obskurnostma typu TCL/TK tak je to úplně někde jinde.
nechce se vám zkoumat DOT formát Graphvizu a psát si export.Moje zkušenost je taková, že podobné programy vyžadují sice větší prvotní investici než běžné klikátory, ale velmi štědře se za snahu odvděčí. Sám to mám v plánu.
Dokonale multiplatformní program, nativní na dané platformě včetně look & feelChtělo by to jen nějakou šablonu.
Žádné závislosti na mraky nejrůznějších knihoven, nedej bože virtuální stroje nebo interpretyTo je těžké. Samotného mě vždycky štvalo když si jedna mini-aplikace při instalaci vyžádala tisíc závislostí o velikosti 10× nebo když jsem mi pro kompilaci něčeho jednoduchého musel zkompilovat dvacet kravin (v Gentoo hodně, při ruční kompilaci ještě víc), jenže čim víc jsem si na to zvykl tím víc mě takové Firefoxy nebo Thunderbirdy štvaly. Holt je potřeba si uvědomit, že aplikace není jen aplikace sama, ale vše včetně závislostí. Některé moderní kodeky např používají FFTW jako stěžejní knihovnu. Vždycky když jsem viděl aktualizaci FFTW, tak se mi oči rozzářili (za dobu své existence zrychlilo několikrát). Jako autor bych byl asi taky radši, kdybych se o tu komponentu nemusel starat (obecný přínos to má taky). A že ve Firefoxu není podporován JPEG2000? Pche…
Jo, studium Graphvizu už se mi vrátilo mnohonásobně.nechce se vám zkoumat DOT formát Graphvizu a psát si export.Moje zkušenost je taková, že podobné programy vyžadují sice větší prvotní investici než běžné klikátory, ale velmi štědře se za snahu odvděčí. Sám to mám v plánu.
Není to tak dávno co jsem potřeboval real-time spektrograf pro audio
Na to jsem používal eXtace. Bohužel jede přes esound, což prý už není moderní, a tak všechny distribuce jeho podporu vyhodily.
To je těžké. Samotného mě vždycky štvalo když si jedna mini-aplikace při instalaci vyžádala tisíc závislostí o velikosti 10× nebo když jsem mi pro kompilaci něčeho jednoduchého musel zkompilovat dvacet kravin (v Gentoo hodně, při ruční kompilaci ještě víc), jenže čim víc jsem si na to zvykl tím víc mě takové Firefoxy nebo Thunderbirdy štvaly. Holt je potřeba si uvědomit, že aplikace není jen aplikace sama, ale vše včetně závislostí.
Problém je ten, že na linuxu to ještě za mohutného skřípění a dření jde. Ale v okamžiku, kdy potřebuješ takovou aplikaci pro Windows nebo Mac OS X a musíš si sám tyhle závislosti poshánět na internetu (a často i zkompilovat) už to není jenom o zvyku.
Prezentace projektu je důležitější než projekt samotný.???
Ano. Napíšeš-li opensource Autocad (tak dokonalej, aby k němu ani USAMA neměl žádný výhrady ) bude to úplně k ničemu, pokuď se o něm lidi nedozvědí.
nechce se vám zkoumat DOT formát Graphvizu ... Další adepty pak zavrhnete proto, že jsou v Javě...Komu není rady... musí si napsat vlastní software
Nehledě na to, že pravděpodobně nemáte vůbec žádnou prezentaci vašeho projektu ale pouze zdrojáky na sourceforge či githubuTo je zásadní chyba*. Založit "projekt" na Githubu nebo něčem podobném je strašně snadné -- a v důsledku toho je i průměrná kvalita strašně nízko. Když pak narazím na takový "projekt", kde se autor ani neobtěžoval vytvořit stránky, napsat srozumitelný popis a nafotit obrazovky... obvykle jdu jinam. Málokdy se začtu do kódu nebo začnu hlouběji zkoumat, protože takového odpadu jsou všude kolem spousty.
Brzy však zjistíte, že to je zcela suveréně největší opruz z celého projektu, při každé nové verzi sestavovat vždy nový produkt.Stejný problém řeší mnoho jiných lidí a je to vyřešené a zautomatizované. V podstatě jde jen o tu prvotní investici, pak už se další verze dělají (skoro) samy. Nicméně pro začátek bych to klidně nechal na někom jiném, kdo danou distribuci používá, ať udělá neoficiální balíčky (časem je můžeš převzít a udělat z nich oficiální). K tomu je důležité, aby šel program snadno zkompilovat a měl dobře zdokumentované závislosti.
Vymyslety si něco pro masy.Záleží, jaká je tvoje motivace. Často naopak člověk nehledá slávu a oblíbenost, ale řeší nějaký vlastní problém -- a zveřejněné je to pro případ, že by to náhodou někdo mohl potřebovat, nebo by mohl pomoci s vývojem.
Hosting projektu zvolte tam, kde je to neprofláknutějšíZákladem je dobrý (přehledný, obsažný) web -- kde je hostovaný, je jedno (potřeba je vlastní nebo stabilní doména). Pak je potřeba být v různých katalozích, ohlohu atd. Zařídit, aby o tobě vycházely zprávičky (nové verze) nebo ideálně články a recenze. (jestli máš momentálně zdrojáky na SF nebo Gitoriousu nebo jinde, je irelevantní)
Prezentace projektu je důležitější než projekt samotný.S tímhle přístupem můžeš jít prodávat nějaký proprietární shit -- tam taky obvykle převládá marketing nad kvalitou a užitečností.
Minete-li s vaším projektem zcela zájem uživatelů, zabalte to radši dřív než později.Opět záleží na motivaci. Na rozdíl od proprietárního softwaru píší svobodný software obvykle lidé, kteří ho zároveň používají a potřebují -- takže v první řadě to děláš pro sebe. Tak proč s tím přestávat?
A hlavně se nenechte od nikoho odradit+1 kritiku je potřeba filtrovat. Z té konstruktivní si vzít co nejvíc, tu ostatní naopak ignorovat. *) pokud autor hledá uživatele/testery/přispěvatele
..píší svobodný software obvykle lidé, kteří ho zároveň používají a potřebujíto si myslim neni pravda. Ne, dokonce dokonce jsem si jist, ze to neni pravda.
Protože je to zajímavý problém k vyřešení? Protože se u toho spoustu věcí naučí? Protože mají pocit, že tím mají možnost splatí svůj "dluh" vůči opensource?
Prezentace projektu je důležitější než projekt samotný.S tímhle přístupem můžeš jít prodávat nějaký proprietární shit -- tam taky obvykle převládá marketing nad kvalitou a užitečností.
Mám zkušenost, že dobrý projekt je jen a pouze používaný projekt. Pokuď projekt má zanedbatelnou uživatelskou základnu, bude obsahovat spoustu chyb, které nikdo nebude hlásit. Testování skutečnými uživately se zkrátka nedá ničím nahradit i kdyby se evangelisti unit testů na hlavu stavěli.
Na rozdíl od proprietárního softwaru píší svobodný software obvykle lidé, kteří ho zároveň používají a potřebují.
Jak už tady někdo zmínil, toto je IMHO mýtus. A to nesoudím jenom podle sebe, kdy jsem projekt dostal do plně použitelného stavu v okamžiku, kdy už jsem jej dávno nepotřeboval...
Ale taková MIT, BSD a podobná licence velmi zvyšuje zájem o projekt.Pozor, tyto licence ale (na rozdíl např. od GPLv3) nijak neřeší patenty – takže uživatel podstupuje riziko, že ho autor může kdykoli zažalovat kvůli „duševnímu vlastnictví“ (ne kvůli samotnému autorskému dílu, ale kvůli softwarovým patentům v něm použitým).
Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.Ak by to urobil tak ti spolu s GPL odovzda prava pouzivat zadarmo tie patenty. Ak to nechce, nema pouzivat GPL 3. > Pokud nějaký „contributor“ bude ignorant a pošle dál jako GPL kód s patenty, Pokial by pouzil vami zminovany MIT alebo BSD kod, ma problem. Ak pouzije GPL 3 kod a prida ho do vasho GPL 3 kodu, nema ziaden problem, vid prvy odstavec. > Následně autor začne soudně vymáhat po uživatelích GPL kód poplatky za patenty a bude tvrdit, že nikdy žádné svolení do GPL kódu nedal. Dal. Je to v GPL 3 jasne napisane ze dava neobmedzene celosvetove bezplatne povolenie na pouzivanie, predaj, zmenu, sirenie atd... Chod trolovat niekam inam.
Kód s GPL3 licencí nijak NEJMENUJE toho, kdo vám dává záruku ohledně patentů.Záruku poskytuje ten, kdo do kódu přispěl -- je to ochrana před tím, aby tě pak nežaloval kvůli patentům. Samozřejmě tě to neochrání před patentovým trolování někoho třetího (nepřispěvatele), ale to nedokáže žádná softwarová licence. Každopádně GPLv3 řeší alespoň část problému (tu řešitelnou), zatímco BSD/MIT neřeší nic.
Podle mě největší slabinou většiny open source projektů je nedotaženost.To neni slabina, to je sila open source. Akoby povedal klasik: "Release early, release often."
"Advocates argue that this allows the software development to progress faster, enables the user to help define what the software will become, better conforms to the users' requirements for the software, and ultimately results in hiher quality software."a to som na tu wikipediu nepisal ja
Problém je ten, že pokuď projekt nedosáhne alespoň určité míry "dotaženosti", nikdo z komunity se ho nechopí. Pokuď už člověk takovej projekt vůbec najde, tak ho s největší pravděpodobností ani nezkusí, protože pravděpodobnost, že program, kterej nemá žádnou dokumentaci (nemyslím teď kódu, ale popis aplikace samotné), screenshoty ani ukázky je v drtivé většině případů jenom smetí.
když najdu projekt s pěkným webem a slušnou dokumentací, tak čekám, že odvedli i kus dobré práce v kóduVadný předpoklad.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.