Portál AbcLinuxu, 1. května 2025 05:19
...Z kvantity roste kvalita. Na vše mohu navázat. ..To mas z VUMLu? O přechodu kvantity v kvalitu nas uci marxleninismus. Porad jsme v 80 letech cekali, kdy se ty, cim dal vetsi, hromady hoven zmeni v neco kvalitniho, treba zapadonemecky kazetak. A ono hovno.
Jaký je rozdíl mezi offline a online wiki?Ta první je prostě program v počítači, co nabízí trochu lepší responzivnost a funguje bez internetu.
Proč je špatně chtít si poznámky z CherryTree (nebo Zimu, nebo čehokoliv jiného) přečíst na mobilu?Špatné na tom není nic. Jen mi přijde víc užitečné mít možnost ty poznámky upravovat - osobně na mobilu většinou chci přidávat třeba nové todo body, než číst si něco co jsem napsal. V tomhle je imho lepší klasická webová wiki, kde to můžeš z mobilu rovnou upravit.
.ctd
, nebo co? Fakt to nechápu.
Cherrytree ma verzi pro Android zatim jen na TODO listu. Resil nekdo osobni wiki i se syncrhonizaci mezi vice zarizenimi, zejmena mobilnimi?
Vim, ze Onenote a Evernote klienty maji, ale zde je pro mne nestravitelne, ze data jsou ulozena v cizim cloudu.
Ještě existuje Google Keep. Když už používám gmail a Google search, tak jim tam šoupnu i ty myšlenky, just to be sure. Pak si tam člověk udělá seznam přání a hned vypadají stránky líp, když se v reklamách zobrazují Lamborghini, tropické ráje a relaxační lehátka místo vysavačů a přípravků na hubení švábů.
Někde jsi tu psal, že bys tu osobní wiki chtěl řešit ideálně objektově… Já jsem nad tím teď taky trochu přemýšlel a za hodně důležitou vlastnost považuji historii, verzování – abych se mohl vracet zpět, abych mohl bez obav promazávat (kdybych to chtěl obnovit, tak můžu, takže mne to neomezuje v tom, dělat si v poznámkách pořádek), abych věděl, kdy která část vznikla… Máš nějak vymyšlené jak tohle řešit, jak tam dostat tu časovou dimenzi? Resp. počítáš vůbec s verzováním?
Nejjednodušší je vyplivnout data do nějaké textové serializace a tu uložit do verzovacího systému, ale to není úplně optimální, protože jednak verzovací systém (resp. diff
) nerozumí tomu formátu a bere to jen jako řádky textu, a jednak pokud chceš používat nějaký WYSIWYG/WYSIWYM editor, tak těžko promítneš tu informaci o tom, kdy která část vznikla, odkud se přesunula atd. protože tu historii eviduješ jen na úrovni řádků zdrojáku/serializace. Možná by šlo použít nějakou databázi a ukládat si všechny provedené operace – takže by si člověk mohl přehrát žurnál a dostat se do nějakého bohu v minulosti – ale zase to neřeší to zpětné dohledání (kdy vznikl daný uzel?). Nebo použít databázi, která tu časovou dimenzi nativně podporuje…
Někde jsi tu psal, že bys tu osobní wiki chtěl řešit ideálně objektově… Já jsem nad tím teď taky trochu přemýšlel a za hodně důležitou vlastnost považuji historii, verzování – abych se mohl vracet zpět, abych mohl bez obav promazávat (kdybych to chtěl obnovit, tak můžu, takže mne to neomezuje v tom, dělat si v poznámkách pořádek), abych věděl, kdy která část vznikla… Máš nějak vymyšlené jak tohle řešit, jak tam dostat tu časovou dimenzi? Resp. počítáš vůbec s verzováním?Ano.
Nejjednodušší je vyplivnout data do nějaké textové serializace a tu uložit do verzovacího systému, ale to není úplně optimální, protože jednak verzovací systém (resp. diff) nerozumí tomu formátu a bere to jen jako řádky textu, a jednak pokud chceš používat nějaký WYSIWYG/WYSIWYM editor, tak těžko promítneš tu informaci o tom, kdy která část vznikla, odkud se přesunula atd. protože tu historii eviduješ jen na úrovni řádků zdrojáku/serializace. Možná by šlo použít nějakou databázi a ukládat si všechny provedené operace – takže by si člověk mohl přehrát žurnál a dostat se do nějakého bohu v minulosti – ale zase to neřeší to zpětné dohledání (kdy vznikl daný uzel?). Nebo použít databázi, která tu časovou dimenzi nativně podporuje…Jsi nepochopil objektově. Tím myslím skutečné objekty v paměti. Historie je prostě property
.history
obsahující odkaz na předchozí verzi objektu. Že je to paměťově náročné? No a? Optimalizace budu řešit, až je budu potřebovat. Serializace je fajn, ale beru to jako export. By default chci mít textové ukládání, ale do formátu objektů programovacího jazyka nezamýšlenou pro lidskou editaci. Mým cílem je mít z toho v každém kroku pokud možno vždy existující objekty bez jejich transformování do běžných formátů, proto to chci stavět nad image-based systémem. To má taky další výhodu, že tvůj systém je doslova programovací jazyk a IDE, což posouvá scriptování taky někam úplně jinam.
Osobně bych to hrozně rád založil na Selfu, ale mé průzkumy zatím ukazují, že na to nejspíš není ready. Prototype based OOP by na to sedělo hrozně moc (doslova máš jen objekty a jejich reprezentace, kód není specifikován nikde jinde v nějakém class browseru), ale momentálně si pohrávám se Smalltalkem.
Ale uvidíme. Jsem spíš ve fázi zkoumání konkrétních frameworků a jazyků a vší silou se snažím odolat cukání si navrhnout vlastní.
Jsi nepochopil objektově. Tím myslím skutečné objekty v paměti. Historie je prostě property .history obsahující odkaz na předchozí verzi objektu.
Ano, nad tím jsem taky přemýšlel, jenže tady nejde zdaleka jen o paměťovou náročnost. Nevím, jak v těch objektech („property .history“) namodelovat plnohodnotnou historii. Představ si, že si napíšeš nějaký odstavec na stránku X, ale pak zjistíš, že patří spíš na stránku Y, tak ho přesuneš. Jak to bude zaznamenané v historii objektů? Budeš mít uložené starší verze stránek X a Y, které budou mít shodou okolností stejné časové razítko? Bude tam někde zaznamenaná ta vazba, že to je pořád ten samý odstavec a jen se přesunul z jednoho místa na druhé? Mě by totiž občas zajímala informace typu „kdy jsem poprvé začal přemýšlet o …“ (tom, co je v tom odstavci).
Taky mi přijde, že uvažuješ o jakýchsi objektech typu „stránka“ (a pak asi nějaké kategorie/štítky/složky nad tím, což jsou jiné typy objektů). Já bych mnohem radši viděl celou tu wiki jako jeden strom/graf složený z uzlů – kde uzel je všechno: kořen, kategorie/složka, štítek, stránka, nadpis, odstavec, formátovaný/vyznačený text (obdoba <b/>, <i/>, resp. spíš sémanticky vyznačený text), odkaz, obrázek… tzn. jednotný model – něco jako kdyby celá wiki byla jedno obrovské XML, což je taky strom uzlů, jedna hierarchie – na vyšší úrovni by byly ty kategorie, stránky, pak obsahy stránek… ale celé by to byl jeden strom, ve kterém by šlo přesazovat uzly z místa na místo. Zřejmě by to nebylo XML, ale logickým modelem se to tomu nejvíc podobá. A k tomuhle bych potřeboval přidat tu časovou dimenzi. Když např. tučně vyznačím kus textu, tak to znamená, že se textový uzel přesunul do uzlu něco jako <strong/>, který je ve stromu na místě toho původního textového uzlu – ne, že se změnil nějaký řádek a ne že vznikla nová verze nějaké stránky. Pojmenované verze (obdoba commit
ve verzovacích systémech) mohou seskupovat více atomických změn, ale zaznamenané by tam měly být i ty jednotlivé změny/operace. (běžný verzovací systém neví o tom, že se přesunul odstavec odněkud někam nebo že se změnilo formátování – pro něj prostě jen nějaké řádky/bajty zmizely a jiné se objevily, ale „nechápe“ proč a jaký to má význam)
Nicméně celé je to jen teorie – udělat něco tak dokonalého mi přijde dost pracné a nevím, jestli to za to stojí. Takže v současnosti to řeším tak, že mám disku složku „znalosti“ a v ní různé podsložky, kam sypu jak soubory od ostatních (obrázky, schémata, PDF, výstřižky z webu), tak svoje poznámky (většinou .txt soubory, někdy .xhtml nebo .xml, občas .tex). Časem si nad tím udělám nějaké indexování a vyhledávání, metadata uložím asi do rozšířených atributů souborů a historii zajistím Mercurialem. Je mi sice proti srsti cpát binární soubory do verzovacího systému, ale tady to asi nějak skousnu.
Tyhle ontologie každého jen otravují :-)
Ne, já o tom vím, i když jsem to zatím nějak moc do hloubky nezkoumal. Ale to, co jsem tu popisoval, mělo být trochu jednodušší a asi by to šlo poskládat i z hotových nástrojů – vzít nějaký SŘBD, který by udržoval tu časovou dimenzi (jenže jaký?) a do této databáze prostě nacpat ten strom. Pak by to chtělo WYSIWYM editor, kterému bys ukázal na část stromu a on by ji vykreslil jako stránku a umožnil editaci, to už je trochu složitější. A k tomu si dopsat nějaké indexování, štítkování atd. to už je poměrně jednoduché (technicky).
Ale dohromady je to pořád spousta práce, takže se do toho asi v nejbližší době nepustím. Přeci jen bych chtěl dělat radši nějakou reálnou práci, než si jen „organizovat poznámky“ (i když i to je důležité). Takže v té složce ~/znalosti
jsem udělal hg init
a párkrát hg add
a hg commit
a zatím to budu udržovat takhle. Časem přidám nějaké indexování a vyhledávání, symbolické odkazy (např. pro štítky) a rozšířené atributy souborů (další metadata) + něco na jejich správu, možná nějaký lepší editor/prohlížeč… Třeba to jednou přehodím do něčeho lepšího – ten jednotný strom a sémantické verzování pořád považuji za ideál, ale ta pracnost prostě převyšuje můj osobní užitek z toho.
Takže v té složceTakže něco jako ty wiki ukládající data do gitu, jak se tady v jiném komentáři snažím propagovat? :)~/znalosti
jsem udělalhg init
a párkráthg add
ahg commit
a zatím to budu udržovat takhle. Časem přidám nějaké indexování a vyhledávání, symbolické odkazy (např. pro štítky) a rozšířené atributy souborů (další metadata) + něco na jejich správu, možná nějaký lepší editor/prohlížeč…
Ano, je to něco podobného. Akorát spíš než k webu směřuji k nějaké desktopové aplikaci – hodilo by se mít kombinaci správce souborů (Dolphin), GUI k verzovacímu systému (Tortoise Hg), prohlížeče souborů (Okular, Gwenview, Firefox/Chromium) a editoru (to je zatím nejslabší část – chtěl bych dobrý WYSIWYM editor) + indexování, vyhledávání, štítky a nějaký nástroj pro jejich správu. Rád bych se držel blízko souborovému systému, tzn. metadata jde ukládat do rozšířených atributů, propojení udělat přes symbolické odkazy a dovedl bych si představit i smysluplné využití nějakého FUSE souborového systému, který by přidával funkcionalitu.
Ono, když se tohle dotáhne do konce, tak se to složitostí pracností už blíží tomu ideálu, co jsem tu popisoval o kousek vedle (jednotný strom uzlů s integrovaným verzovacím systémem), ale na rozdíl od něj lze tento ekosystém budovat iterativně a užitečný/použitelný je už v té první/nejprimitivnější fázi (soubory + adresáře + Mercurial).
kde uzel je všechno: kořen, kategorie/složka, štítek, stránka, nadpis, odstavec, formátovaný/vyznačený text
P.S. resp. ne nadpis, ale kapitola (jejímž atributem je nadpis) – a pod uzlem kapitoly jsou uzly dalších kapitol nebo odstavců. Tzn. nemělo by to vypadat tak, jako v HTML, kde nadpis a jemu podřízené odstavce jsou ve stromu na stejné úrovni.
Taky mi přijde, že uvažuješ o jakýchsi objektech typu „stránka“ (a pak asi nějaké kategorie/štítky/složky nad tím, což jsou jiné typy objektů). Já bych mnohem radši viděl celou tu wiki jako jeden strom/graf složený z uzlů – kde uzel je všechno: kořen, kategorie/složka, štítek, stránka, nadpis, odstavec, formátovaný/vyznačený text (obdoba <b/>, <i/>, resp. spíš sémanticky vyznačený text), odkaz, obrázek… tzn. jednotný model – něco jako kdyby celá wiki byla jedno obrovské XML, což je taky strom uzlů, jedna hierarchie – na vyšší úrovni by byly ty kategorie, stránky, pak obsahy stránek… ale celé by to byl jeden strom, ve kterém by šlo přesazovat uzly z místa na místo. Zřejmě by to nebylo XML, ale logickým modelem se to tomu nejvíc podobá. A k tomuhle bych potřeboval přidat tu časovou dimenzi. Když např. tučně vyznačím kus textu, tak to znamená, že se textový uzel přesunul do uzlu něco jako <strong/>, který je ve stromu na místě toho původního textového uzlu – ne, že se změnil nějaký řádek a ne že vznikla nová verze nějaké stránky. Pojmenované verze (obdoba commit
ve verzovacích systémech) mohou seskupovat více atomických změn, ale zaznamenané by tam měly být i ty jednotlivé změny/operace. (běžný verzovací systém neví o tom, že se přesunul odstavec odněkud někam nebo že se změnilo formátování – pro něj prostě jen nějaké řádky/bajty zmizely a jiné se objevily, ale „nechápe“ proč a jaký to má význam)
:)
Mrkni se na Self a na jeho objektový model. Vážně :)
Dík, to vypadá zajímavě. Ten proklik, kterým si člověk zobrazí danou část stromu, to je přesně ono. Tedy samo o sobě to nestačí, ale zrovna tahle část je to, jak jsem si to představoval.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.