Wiki mecum porto
Obsah |
Úvod[editovat]
Omnia mea mecum porto si můžeme parafrázovat jako Omnia viciversitas mea mecum porto: Celou svoji Wikiversitu si nosím s sebou. Neboli Wiki na cestách, či Wiki do postele anebo jak chcete.
Za pár dní máme prázdniny a tak je nejvyšší čas vyřešit, jak si vzít Wikipedii s sebou na dovolenou.
Kdo má zajištěný notebook, napájení a stálé, cenově únosné připojení na Inet, nemá co řešit a tuto stránku může opustit. Problémy nastanou, když něco z toho zajištěno není:
- Kdo nemá připojení, nemůže v reálu editovat na Wikiverzitě
- Kdo platí za čas připojení, nemůže si třeba dovolit editovat v reálném čase na Wikiverzitě od rána do večera
- Kdo platí za množství přenesených dat, platí znova a znova za přenášení dokumentů i po malých editacích, za natahování stránek, které se moc nezměnily atd.
- Kdo nemá notebook, musí sedět u svého PC doma
- Kdo má notebook, musí tahat na zádech či v ruce nějaké 3kg
- Kdo má notebook, může editovat v průměru nějaké ty 3-4 hodiny a pak mu dojdou baterky, které si v lese nebo v horách nenabije (pokud tam není autem)
- atd.
V tomto projektu se pokusíme hledat různá řešení, které by nám umožnila vzít si Wikiverzitu s sebou prakticky kamkoliv. Řešení softwarová i hardwarová i různé další fígle a nápady.
Software[editovat]
Off-line editace[editovat]
Pokud chceme vytvářet nějaké Wiki stránky, nemusíme být nutně připojeni on-line. Editovat můžeme v libovolném textovém editoru a někdy je to dokonce i výhodnější:
- Při výpadku spojení či problémech na serveru apod není naše práce ztracena
Nevýhody:
- Editační konflikt (později zjistím, že někdo jiný editoval ty samé dokumenty a pak může být problém skloubit moje a cizí editace)
- Kontrola syntaxe: nemám k disposici náhled a tak nejsem včas upozorněn, kde dělám chyby, a ty se pak mohou kumulovat; když si nejsem jistý, jak bude vypadat výsledek, nemám možnost si to hned ověřit
- Ale to není vůbec pravda. Pokud edituji off-line, jakože mám instalaci MediaWiki na svém počítači tak mohu náhled používat. Je jasné, že pokud edituji jinak off-line, např. v MS Word, nebo OO Writer, tak samozřejmě ne. Pro wikiformát v těchto dokumentech pak existují různé extenze.
- Chybějící okolní stránky: Chci se odkazovat na jiné stránky, ale nemám ani jistotu, jak se přesně jmenují, co obsahují a jestli vůbec existují
Možná řešení:
- Vybírám si témata, u kterých je málo pravděpodobné, že je bude zpracovávat někdo jiný. Anebo založím stránky se šablonou, že na tématu budu pracovat; problém může být v tom, že šablona "pracuje se" není určena na dobu celé dovolené, ale např. 1 den nemusí být problém.
- S tou šablonou to není pravda. Šablonu "pracuje se" si mohu nastavit na jak dlouho chci, třeba i na 14 dní. Spíš jde o ohleduplnost k ostatním.
- Řešením je i to, že následně ty verze sloučím - to je ale problém, protože ne vždy to jde (souslednost editací) a většinou to bez rozšířených práv nejde (je nutno mazat)
- Dalším řešením je editovat vlastní verzi stránky. Nikdo vás na wv nenutí editovat jednu Biofyziku či jednu Španělštinu. Pokud je jiný přístup například metodika, mohou vedle sebe existovat dva na první pohled stejné kurzy, které se liší jen jménem. Například kurz pro dospělé začátečník španělština 1, může být Španělština 1 a Španělština pro začátečníky.
- Dohodnout se s ostatními na tzv. přípravné a stabilní verzi. To je ale zatím těžko proveditelné. Nicméně, tam kde se připravuje nějaký projekt ve jmenném prostoru user to nemusí vadit.
- Na mém PC či notebooku běží nějaký http server, např. apache s php modulem a MySQL server a mám na něm nainstalovaný software MediaWiki. Pak si můžu vytvářet a testovat svoji lokální reprezentaci svých Wikidokumentů, prohlížet si ji, ladit atd. a teprve potom hotové dokumenty (wikistránky) uploadovat na příslušný server.
- Výše uvedenou instalaci si doplním snapshotem z wiki projektu, který ně zajímá, a pak mám u sebe lokální kopii třeba celé Wikiverzity v tom stavu, v jakém byla v okamžiku, kdy jsem byl připojen na síti. Tuto lokální kopii si pak mohu aktualizovat v okamžiku, kdy budu mít konektivitu, což v mnohých případech stačí.
- Nevim co je to snapshot, ale řešení v podstatě spočívá v tom, že si stáhnu celou oblast i se souvisejícíma stránkama - a pak není problém.
Hardware[editovat]
Pro tu nejjednodušší off-line editaci nám stačí libovolný textový editor, který můžeme mít třeba na našem PDA. Sám používám už několik let osvědčený Psion 5mx o velikosti 170 x 88 x 23 mm a váze cca 370 g včetně dvou 2000 mAh tužkových NiMH článků, které mi vydrží cca na týden běžného provozu. Data ukládám na CompactFlash 2GB. Běží tam jak původní OS EPOC, tak i Debian GNU/Linux. RAM má 16MB, což bohatě stačí na editaci i velkých stránek, ale už by bylo asi málo na současný běh X-serveru, editoru, browseru, apache a MySQL serveru. Což zřejmě bude platit i pro většinu ostatních (i moderních) handheldů (ale jistě brzy přijde doba, kdy i to možné bude).
Uvedená kombinace běžícího software bude realizovatelná zřejmě na každém současném notebooku s minimem cca 256MB RAM (což má moje PC, na kterém právě teď pracuji) a HDD nějakých cca 5GB.
Jedním z cílů našeho projektu bude najít takovou minimální hardwarovou konfiguraci, která by pro takovou práci byla ještě únosná, a to i po cenové stránce. Tomu se věnujeme na samostatné stránce Subnotebooky.
Styl práce[editovat]
Můžeme si představit několik scénářů a jejich kombinací, jak by mohla vypadat práce s podobným vybavením v terénu, např.:
- Mám subnotebook o váze cca 1kg s lokální kopií Wikiverzity, který s sebou nosím celý den bez ohledu na připojení, ve chvílích potřeby či inspirace vytvářím wikistránky svého projektu. Večer se dostanu ke zdroji energie (automobil, staniční akumulátory, nabíjené přes den solárními panely či vodní minielektrárničkou na lesním potůčku apod.) pro dobití subnotebooku, případně se mi podaří navázat Inetové spojení (mobil, WiFi, Freenet, paketové radio atd.), během kterého uploaduji svoji celodenní práci a naopak aktualizuji svoji lokální kopii databáze celé Wikiverzity (či jen její části). Případně toto spojení a výměnu informací uskutečním až po návratu z dovolené.
- Během dne s sebou nosím jen PDA, kam si píšu svoje wikistránky jen nahrubo v textovém formátu. Večer soubory z flash karty přenesu do svého notebooku či notebooku a pokračuji stejným způsobem.
Problémy[editovat]
Velikost uploadu[editovat]
Stáhneme si z http://download.wikimedia.org/cswikiversity/ soubor, který bude mít po rozzipování dejme tomu 5 MB nebo i více. Při pokusu o import potom dostaneme hlášku:
Nepodařilo se načíst importní soubor; možná jeho velikost přesahuje dovolenou mez.
Jaká je ta dovolená mez?
The warning for the size is set in LocalSettings.php via (e.g. from my file): ## Warn if uploaded files are larger than this ## max size set to 50kB in php.ini ## php.ini generates an error, below generates a warning. ## Hence - warn above 30KB, error above 50KB. $wgUploadSizeWarning = 30 * 1024; However, the absolute limit is set in PHP.ini: ; Maximum allowed size for uploaded files. ; ---===< This is set to 50K for kayakwiki - MD >===--- upload_max_filesize = 50K
Ale kde najdu to PHP.ini?
Nakonec něco objevím:
# cd /etc # grep upload_max_filesize */*/* php5/apache2/php.ini:upload_max_filesize = 2M php5/cli/php.ini:upload_max_filesize = 2M
OK, změním to na 10M – ale problém trvá dál. Zkusím hledat pomoc dle http://www.radinks.com/upload/config.php
Tak tedy – abych zjistil, jak mám vůbec PHP nastavené, napíšu si někam do svého WWW prostoru malý skriptík, který si nazvu např. phpmyinfo.php:
<html> <head> </head> <body> = PPHinfo = <?php PHPInfo(); ?> </body> </html>
A hned tam najdu:
| upload_max_filesize | 2M | 2M |
V čem je problém? Asi jsme zapomněli restartovat Apache!
# apache2ctl restart
a po reloadu stránky je to OK:
| upload_max_filesize | 10M | 10M |
Tak zkusím znova importovat do Wiki – ale ten samý problém přetrvává!
Dobrá, udělám pokus a zkusím uploadovat velký obrázek:
Varování * Doporučuje se, aby délka souboru nepřesahovala 150 kB, tento soubor má 5,26 MB. Uložit soubor: Ignorovat varování a načíst soubor. Načíst znovu: Vrátit se k načtení.
Dám "Uložit soubor" a proběhlo to v pořádku. Takže v tom PHP asi problém nebude. Musí to být někde v nastavení MediaWiki.
Tak to zkusím podle m:Data dumps:
# cd /usr/share/mediawiki/maintenance # php importDump.php < /media/data-60G/petr/wiki/dump/cswikiversity/20081206/cswikiversity-20081206-pages-meta-current.xml >& /tmp/progress.log & # tail -f /tmp/progress.log
Rychlost byla něco přes 10 stránek/s, takže načtení celkového počtu cca 1700 stran trvalo cca 3 minuty. Nakonec hláška:
Done! You might want to run rebuildrecentchanges.php to regenerate the recentchanges page.
Mirror[editovat]
Po předběžných zkušenostech se pokusíme vymyslet, jak přenést obsah Wikiverzity na lokální server (např. notebook). V zásadě to vidím na rozdělení dumpu či exportu na dvě etapy:
- Celkový dump:
- Stažení posledního dumpu z http://download.wikimedia.org/cswikiversity/ – pokud nechceme historii, zvolíme pravděpodobně soubor pages-meta-current.xml.bz2
- MediaWiki - Import dumpu do lokální instalace MediaWiki
- Inkrementální export: V určitých intervalech aktualizovat průběžně obsah
- Vytvořit seznam naposledy změněných stránek nějakým botem či skriptem – řešíme to zrovna na RObot#Speciální stránky
- Provést export těchto stránek např. standardně přes Speciální:Export
- Import těchto stránek (s právy správce na lokálním systému) přes Speciální:Import