LinuxovΘ noviny | Duben 1998 | ||
| |||
┌Φastnφci LinuxovΘho seminß°e na Cikhßji m∞li mo╛nost vyslechnout moji p°ednß╣ku na tΘma "Firewall pod Linuxem". Slajdy, kterΘ jsem tam promφtal, jsou k dispozici i na Internetu http://www.linux.cz/cikhaj/yenya. Ji╛ na seminß°i jsem byl n∞kolikrßt dotazovßn, jakΘ nßstroje byly pou╛ity k v²rob∞ t∞chto obrßzk∙. A prßv∞ tΘto otßzce se budu v∞novat v Φlßnku, kter² prßv∞ Φtete.
PromφtßnφZaΦnu od konce - od v²slednΘho efektu. V²sledkem mΘho sna╛enφ byly b∞╛nΘ bitmapovΘ obrßzky ve formßtu PNG (Portable Network Graphics http://www.cdrom.com/pub/png/). Tyto obrßzky jsem promφtal na monitor a tedy i na plßtno prohlφ╛eΦem xv. Tento program je pro promφtßnφ obrßzk∙ velmi vhodn². Umφ zobrazovat postupn∞ n∞kolik obrßzk∙, jejich╛ jmΘna m∙╛e u╛ivatel specifikovat nap°φklad z p°φkazovΘ °ßdky. Tak╛e moje prezentace se spou╣t∞la nßsledujφcφm p°φkazem:
$ xv stranka*.png Prohlφ╛eΦ xv lze ovlßdat z klßvesnice - pro prezentace postaΦφ v∞d∞t, ╛e mezernφkem se zobrazφ dal╣φ obrßzek a pomocφ BackSpace p°edchozφ obrßzek. Dal╣φm kladem tohoto programu je, ╛e nemusφte slo╛it∞ laborovat s umφst∞nφm okna - jsou-li obrßzky stejn∞ velkΘ jako obrazovka, xv je automaticky zobrazφ p°es celou velikost obrazovky s tφm, ╛e hornφ li╣ta okna ani rßmeΦky nejsou viditelnΘ.
Sazba textuZp∞t na zaΦßtek - k vlastnφmu vytvß°enφ textu. Text jsem sßzel v TeXu s formßtem eplain Karla Berryho (doporuΦuji va╣φ pozornosti - tento formßt mφrn∞ roz╣i°uje plain TeX s tφm, ╛e na rozdφl od LaTeXu nevnucuje u╛ivateli ╛ßdn² konkrΘtnφ styl sazby). Jako pφsmo jsem pou╛il font Charter od firmy Bitstream, kterΘ je dostupnΘ voln∞ v ka╛dΘ distribuci XFree86. PoΦe╣t∞nφ tΘto rodiny pφsem (stejn∞ jako fontu IBM Courier, pou╛itΘho pro strojopisnΘ texty) jsem provedl balφkem fontinst a spoustou ruΦnφ prßce. Obrßzky jsem kreslil programem XFig a importoval do dvi souboru jako encapsulated PostScript.V²slednΘ slajdy jsou tvaru landscape tedy "nale╛ato". Toho jsem dosßhl tak, ╛e jsem nastavil \vsize=5in. V²znamn² text slajdu tedy le╛φ v hornφ polovin∞ strßnky A4.
Od TeXu k bitmap∞V²znamn²m meziproduktem na cest∞ k v²slednΘ prezentaci jsou soubory, obsahujφcφ ve form∞ polot≤novΘho (Φerno-╣edo-bφlΘho) obrßzku jednotlivΘ strßnky. Napsal jsem si krßtk² shellov² skript, kter² realizuje p°evod z DVI do t∞chto obrßzk∙:
#!/bin/sh dvips -t a4 -f cikhaj98 | \ gs -dSAFER -sDEVICE=pgmraw -r400x400 -q \ -dNOPAUSE -sOutputFile=stranka%03d.pgm - for i in stranka*.pgm; do pnmcut 80 0 3200 2400 $i >$i.cropped pnmscale -xscale 0.25 -yscale 0.25 \ $i.cropped >$i rm $i.cropped done Tedy pomocφ dvips p°evedu prezentaci do PostScriptu, pomocφ GhostScriptu p°evedu jednotlivΘ strßnky do pgm (v rozli╣enφ Φty°ikrßt v∞t╣φm, ne╛ budu dßle pot°ebovat), v²sledn² pgm soubor o°φznu na po╛adovanΘ rozm∞ry programem pnmcut a pomocφ pnmscale zmen╣φm na Φtvrtinu (tedy 800 krßt 600 bod∙) a zφskßm tφm i antialiasing (nov∞j╣φ GhostScript umφ antialiasing sßm, ale tehdy jsem je╣t∞ tuto verzi nem∞l nainstalovanou).
Barevnß magie - GIMP na scΘn∞Nynφ u╛ zb²vß takto vytvo°enΘ polot≤novΘ obrßzky vzφt, nabarvit text na ╛luto, doplnit k textu Φern², trochu neostr² stφn, pod nadpis vlo╛it vodorovnou Φßru se ╛luto-Φerveno-╛lut²m barevn²m p°echodem a stφnem ve stejnΘm stylu a pod to v╣echno vlo╛it pozadφ, p°echßzejφcφ shora dol∙ od sv∞tle modrΘ do tmav∞ modrΘ.
![]() Ud∞lat zmφn∞nΘ nenφ ╛ßdn² problΘm - staΦφ k tomu libovoln² alespo≥ trochu slu╣n² editor bitmapov²ch obrßzk∙ (z komerΦnφch vzpomenu nap°φklad Adobe Photoshop). Ov╣em ud∞lat tohle pro sedmadvacet slajd∙ poka╛dΘ stejn∞, to u╛ jen tak jednoduchΘ nenφ. Pominu-li mo╛nost d∞lat to sedmadvacetkrßt ruΦn∞, co╛ m∙╛e napadnout asi jen notorickΘho u╛ivatele p°edp°edlo≥sk²ch Windows, zb²vß najφt zp∙sob, jak v²╣e popsanΘ operace realizovat dßvkov∞. Jednou z mo╛nostφ je balφk NetPBM, jeho╛ souΦßsti - programy pnmcut a pnmscale jsme vid∞li v akci v²╣e. Nakonec jsem se ale rozhodl, ╛e tento balφk nenφ pro moje ·Φely dostaΦujφcφ. Dal╣φ alternativou je program Gimp http://www.gimp.org. Pokud jste snad o Gimpu je╣t∞ nesly╣eli: jde o velmi kvalitnφ roz╣i°iteln² program pro manipulaci s obrßzky. Podφvejte se na WWW strßnku Gimpu, tam je uvedeno vφce. Na tomto mφst∞ zmφnφm jen pßr zajφmavostφ: v Gimpu byl mimo jinΘ nakreslen znßm² linuxov² tuΦ≥ßk http://www.isc.tamu.edu/~lewing/linux/. Vedlej╣φm produktem v²voje Gimpu je i toolkit gtk+, jeden z nejlep╣φch toolkit∙ pro X11 (na gtk+ je zalo╛eno i u╛ivatelskΘ objektovΘ rozhrani GNOME http://www.gnome.org). Program Gimp mß tu skv∞lou vlastnost, ╛e jej lze programovat. Jednak lze dopisovat r∙znΘ filtry a grafickΘ efekty pomocφ mechanismu plug-in∙, a jednak ka╛dou operaci, kterou v Gimpu m∙╛e u╛ivatel ud∞lat vyvolßnφm funkce menu nebo stiskem tlaΦφtka my╣i, lze tΘ╛ zavolat jako proceduru internφho skriptovacφho jazyka. Implicitn∞ mß Gimp vestav∞n² skriptovacφ jazyk s nßzvem script-fu. Tento jazyk je variantou funkcionßlnφho programovacφho jazyka Scheme (pro ty, kdo v∙bec nevφ o co jde: je to vzdßlen∞ podobnΘ LISPu, kter² znßte t°eba z Emacsu, a kter² se zejmΘna vyznaΦuje na m∙j vkus nadm∞rn²m mno╛stvφm kulat²ch zßvorek). Docela by m∞ zajφmalo, proΦ auto°i Gimpu zvolili tento jazyk, kdy╛ na Internetu roste velkΘ mno╛stvφ ji╛ hotov²ch p°ilinkovateln²ch (embeddable) interpreter∙ (nap°φklad Perl nebo Tcl) s rozumn∞j╣φmi jazyky, ne╛ je Scheme. Na╣t∞stφ podobn² vztah ke script-fu mß vφce lidφ. Marc Lehmann pcg@goof.com napsal modul pro Perl, kter² zp°φstupnφ internφ funkce Gimpu perlovΘmu skriptu. Tento modul lze nalΘzt na libovolnΘm zrcadle CPANu, nap°φklad na adrese ftp://ftp.fi.muni.cz/pub/perl/modules/by-module/GIMP. Tento modul se standardnφm zp∙sobem zkompiluje a nainstaluje. Dßle je nutno vzφt program Net-Server z tohoto modulu a nakopφrovat jej do adresß°e, kde Gimp hledß plug-iny (nap°φkad do ~/.gimp/plug-ins/).
Net Server - Gimp po sφtiPlug-in Net-Server je po startu Gimpu dostupn² z menu Extensions. Tento plug-in po spu╣t∞nφ vytvo°φ UNIXov² socket v adresß°i /tmp a p°es tento socket mu perlovskΘ skripty mohou zadßvat p°φkazy. Tyto p°φkazy jsou pak p°edßny Gimpu, kter² je vykonß. Takto m∙╛eme mφt n∞kde spu╣t∞n² Gimp a z jinΘho okna spou╣t∞t jednotlivΘ skripty. Nebudu uvßd∞t cel² skript, kter² jsem pou╛φval pro vytvß°enφ prezentace. Skript najdete v adresß°i s Linuxov²mi novinami.Je vid∞t, ╛e ka╛d² takov² skript musφ obsahovat podprogram net, kter² je vykonßvßn Net-Serverem. Dßle m∙╛e obsahovat podprogram query, kter² slou╛φ k psanφ plug-in∙ v Perlu. Tento podprogram volß Gimp p°i startu, pokud je script v adresß°i plug-ins. Dßle skript musφ obsahovat zavolßnφ jßdra Gimpu - rutiny gimp_main.
Zßv∞rTento Φlßnek mß slou╛it jednak jako odpov∞∩ na dotazy typu "Jak jsi to ud∞lal?" ohledn∞ mΘ p°ednß╣ky na Cikhßji, a jednak jako upozorn∞nφ na Gimp - pom∞rn∞ siln² program pro editaci a tvorbu grafiky s vlastnφm skriptovacφm prost°edφm. Myslφm, ╛e Gimp si zaslou╛φ samostatn² Φlßnek v tomto Φasopise, ne-li p°φmo serißl Φlßnk∙. Je╣t∞ uvidφm, co se s tφm dß d∞lat...![]() |