Wiki mecum porto

Z Wikiverzity
Jak používat klasifikační nálepkuTato stránka je samostatný projekt
Příslušnost: všeobecná

Wiki mecum porto, tedy „wiki si nosím s sebou“ je mottem pro všechny, kdo chtějí na Wikiverzitě pracovat během svých prázdnin nebo dovolené, v posteli na chatě, na hrázi u rybníka, na letišti při čekání na odlet na Kanáry, na Kanárech na pláži, když se rodina koupe a wikimediánovi se do vody nechce.

Východiska[editovat]

Wikimedián edituje v lese

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í:

  1. Kdo nemá připojení, nemůže v reálu editovat na Wikiverzitě
  2. 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
  3. 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 načítání stránek, které se moc nezměnily atd.
  4. Kdo nemá notebook, musí sedět u svého PC doma
  5. Kdo má notebook, musí tahat na zádech či v ruce nějaké 3kg
  6. 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)
  7. 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á, jakož 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. Má to i svoje výhody:

  1. Při výpadku spojení či problémech na serveru apod. není naše práce ztracena.

Ale také nevýhody:

  1. Může nastat off-line editační konflikt, tedy že později, při přenosu své práce do Wikiverzity, zjistíme, že někdo jiný editoval tytéž stránky, a pak může být problém skloubit naše a cizí editace.
  2. Nemáme k disposici náhled, a tak nejsme včas upozorněni na případné syntaktické chyby, a ty se pak mohou kumulovat. Když si nejsme jisti, jak bude vypadat výsledek, nemáme možnost si to hned ověřit.
  3. Chybějí nám okolní stránky, na které chceme odkazovat nebo navazovat. Nemáme však jistotu, jak se přesně jmenují, co přesně obsahují, ba možná ani zda vůbec existují.

Možná řešení:

  1. Předcházení editačnímu konfliktu, řešení nastalého editačního konfliktu:
    • Vybíráme si témata, u kterých je málo pravděpodobné, že je bude zpracovávat někdo jiný, nebo které patří do naší příslušnosti.
    • Stránku, na které chceme pracovat, před odjezdem označíme šablonou {{pracuje se}}. Případně navíc v diskusi upozorníme, dokdy hodláme pracovat off-line.
    • Případné různé verze téže stránky (tedy vlastní práci a stránku mezitím změněnou jinými) po návratu sloučíme. To ovšem někdy nejde, někdy jsou k tomu potřeba práva správce.
    • Pracujeme na stránkách patřících do našeho uživatelského prostoru, třeba na předběžných verzích textů, které budou následně zapracovány do projektu. Ty pak mohou být později přesunuty jinam nebo sloučeny s jinými stránkami, pokud bude zapotřebí.
    • Dohodneme se s ostatními spolupracovníky na projektu na dělbě práce, takže víme, kdo pracuje na které stránce, a nelezeme si navzájem do zelí.
  2. Nemožnost náhledu:
    • To můžeme vyřešit tím, že budeme mít MediaWiki na svém počítači, a budeme tak moci náhled používat. Pak musíme na svém cestovním počítači mít spuštěn HTTP server (např. Apache) s PHP modulem a MySQL server, a na tom nainstalován software MediaWiki. Pak si můžeme vytvářet a testovat svoji lokální reprezentaci svých stránek, prohlížet si ji, ladit atd., a teprve po návratu pak přenést na server Wikiverzity.
    • Pokud editujeme off-line v běžném editoru (MS Word, LO Writer), pak možnost náhledu sice nemáme, ale existují různé extenze pro tyto editory, které umějí kontrolovat wikisyntaxi.
  3. Nepřítomnost kontextu:
    • Jde vyřešit tím, že si do svého počítače stáhneme (jsou na to různá udělátka, chtělo by to sem dodat konkrétně, jaká) celou oblast Wikiverzity, v níž pracujeme (tzv. snapshot webové stránky). Není však vhodné v celém tomto kontextu editovat, pak by zpětný přenos na Wikiverzitu mohl být velmi složitý až nemožný.
    • Můžeme si též z http://download.wikimedia.org/cswikiversity/ stáhnout celou Wikiverzitu. Je to ovšem pořádný balík dat, a zpětný přenos je rovněž možný jen po jednotlivých vybraných stránkách.

Hardware[editovat]

Pro tu nejjednodušší off-line editaci nám stačí libovolný textový editor, který můžeme mít třeba na svém PDA.

Kychotova zkušenost: Sám používám už několik let osvědčený Psion 5mx o velikosti 170×88×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).

Pro současný běh grafiky, editoru, webového prohlížeče, HTTP a MySQL serveru bude nejspíše stačit každý současný notebook s minimem cca 256MB RAM 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 je věnována též samostatná stránka Subnotebooky.

Styl práce[editovat]

Můžeme si představit několik scénářů, jak by mohla vypadat práce s podobným vybavením v terénu, a tyto scénáře pak případně ještě kombinovat, např.:

  1. Máme subnotebook o váze cca 1 kg s lokální kopií Wikiverzity, který s sebou nosíme celý den bez ohledu na připojení, a ve chvílích potřeby či inspirace vytváříme wikistránky svého projektu. Večer se dostaneme 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 nám podaří navázat internetové spojení (mobil, WiFi, Freenet, paketové radio atd.), během kterého uploadujeme svoji celodenní práci a naopak aktualizujeme svoji lokální kopii databáze celé Wikiverzity (či jen její části). Případně toto spojení a výměnu informací uskutečníme až po návratu z dovolené.
  2. Během dne s sebou nosíme jen PDA, kam si píšeme svoje wikistránky jen nahrubo v textovém formátu. Večer soubory z flash karty přeneseme do svého notebooku a pokračujeme 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í třeba i několik desítek MB. Při pokusu o import potom dostaneme hlášku:

Nepodařilo se načíst importní soubor; možná jeho velikost přesahuje dovolenou mez.

Pak musíme změnit nastavenou povolenou mez v nastavení svého PHP. Abychom zjistili, jak máme PHP nastavené (pomoc můžeme hledat třeba tady), napíšeme si někam do webového prostoru na svém počítači malý skriptík, který si nazveme např. phpmyinfo.php:

<html>
<head>
</head>
<body>
= PPHinfo =
<?php PHPInfo(); ?>
</body>
</html>

A tam se pak třeba dočteme:

upload_max_filesize 2M 2M

Nyní tedy musíme najít svoje PHP.ini, a v něm uvidíme něco takovéhohle:

# cd /etc
# grep upload_max_filesize */*/*
php5/apache2/php.ini:upload_max_filesize = 2M
php5/cli/php.ini:upload_max_filesize = 2M

Zde tedy původních 2M změníme třeba na 10M. Aby se změna projevila, musíme restartovat Apache:

# apache2ctl restart

Po znovunačtení stránky pak už nám náš phpmyinfo.php ukáže kýžené nastavení:

upload_max_filesize 10M 10M

Pak stáhneme soubor a podle https://www.mediawiki.org/wiki/Manual:Importing_XML_dumps načteme stažený soubor do své MediaWiki:

# 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

Když měla Wikiverzita svého času cca 1700 stran, trvalo toto načtení na výše popsaném notebooku cca 3 minuty, v roce 2018 má Wikiverzita přes 10000 stran. Konec načtení nám oznámí hláška:

Done!
You might want to run rebuildrecentchanges.php to regenerate the recentchanges page.

Mirror[editovat]

Protože stahování a lokální načítání celého dumpu Wikiverzity může být záležitost na dlouhé lokte, je vhodné přenést si tento dump na lokální server (např. onen notebook), na nějž následně budeme přenášet už jen průběžné změny. Půjde tedy o dvě akce:

  1. Celkový dump:
    1. Stažení posledního dumpu z http://download.wikimedia.org/cswikiversity/ (pokud nechceme historii, zvolíme pravděpodobně soubor pages-meta-current.xml.bz2)
    2. Import dumpu do lokální instalace MediaWiki výše popsaným způsobem
  2. Inkrementální export: V určitých intervalech aktualizovat průběžně obsah
    1. Vytvořit seznam naposledy změněných stránek nějakým botem či skriptem (viz MediaWiki/Boti/RObot)
    2. Provést export těchto stránek např. standardně přes Speciální:Export
    3. Import těchto stránek (s právy správce na lokálním serveru) přes Speciální:Import