2013. február 25., hétfő

Blogspot blog szerkesztése konzolból - 3 éves a blog

Három éve indítottam el ezt a blogot, 67 bejegyzés született (ez a 68-adik), az oldalmegjelenítések száma összesen 34157. Ezek az eredmények megfelelnek a várakozásaimnak, érthetőek az oldal funkcióját tekintve. Mivel ez egy rendhagyó poszt megmutatok néhány további statisztikát, majd pár dolgot az oldal készítésének “kulisszatitkairól”! :D

A bejegyzések döntő többsége, 63 Linux-os témájú, az első egy évben inkább Ubuntu-val foglalkoznak (24 darab), később elsősorban a Crunchbang Linux a cikkek (32 darab) anyaoprendszere, de természetesen más Linux-ot használók is hasznosíthatják a leírtakat. A blog indításakor, amikor még Ubuntu-t használtam látszik, hogy kevésbé ismertem még a Linux rendszert, később áttértem az advance-ebb felhasználóknak készült Crunchbang Linux-ra, a cikkek is legtöbbször egyre inkább valamilyen speciálisabb témáról szólnak.

Miután elkezdtem az egyetemet kicsit be is következett a megjósolt bejegyzés csökkenés, később mikor kezdtem összeszedni magam és több időm lett, megnőtt a megírt cikkek száma.

Az oldalmegjelenítések számáról egy összesített grafikon:

Látható, hogy az oldal látogatottsága körülbelül lineárisan növekszik. A legnépszerűbb 10 bejegyzés a következő:

Természetesen az inkább átlagfelhasználóknak szóló cikkek lettek a legnépszerűbbek, a mindenféle hibamegoldások, szkriptelések a tapasztaltabb felhasználóknak, azaz egy kisebb rétegnek szólnak. A céljaimnak megfelelően a látogatók szinte 100%-a Google-ről találnak ide, amikor valamire keresik a megoldást, ez rendben is van, mert a blog célja problémamegoldásban segítség nyújtása. Az érdekesebb, hogy a látogatók fele Windows-t használva téved ide, és csak a másik 50% használ valamilyen Unix leszármazottat:

Böngészők tekintetében szerintem nincsen semmi meglepő, a Firefox és a Chrome volt a szörfdeszka az esetek 70%-ában, a többi kb egyenletesen megoszlik, az IE 14% szinte fáj. :D

Következzen tehát néhány dolog a készítésről. A cikkek írásához egy ideje már a korábban említett Pandoc nyelvet, és UberWriter szerkesztőt használom. Az elkészült írást konvertálom HTML-be, majd, hogy a Blogspot HTML nézetébe beillesztve is szépen formázott maradjon a cikk, lefuttatok egy saját szkriptet, ami néhány finomhangolást végez még:

  • nem használt .css fájl include-jának törlése
  • sorkizárás beállítása a szövegre
  • linkek megnyitása új tabon
  • képek beillesztése konzolból

A képek feltöltéséhez, beillesztéséhez használom a googlecl (Google Command line tools) nevű Google Data API-ra épülő szkript gyűjteményt. Ha valaki szintén használni akarja ezt a kis toolt így telepítheti:

$ sudo easy_install googlecl

Ezután már használható az általam írt szkript:

#!/bin/bash
# Milán Unicsovics, u.milan at gmail dot com
# usage: ./processPost.sh <postname>.html
# required: googlecl (http://code.google.com/p/googlecl/)
post=$1
imgdir=<RESOURCE DIRECTORY>
blogname="<BLOGNAME>"
# Check post and test its format
if [ -z $post ]; then
exit -1
fi
ext=$(echo $post | cut -d '.' -f2)
if [ $ext != 'html' ]; then
echo 'Error! No .html file!'
exit -1
else
if ! [ -w $post ]; then
echo 'Error! File is not writable!'
exit -1
fi
fi
# Delete unused .css file
if [ `grep -c 'file:////usr/share/uberwriter/media/uberwriter.css' $post` == 1 ]; then
echo "Deleting unused .css file..."
delLine=`grep -n 'file:////usr/share/uberwriter/media/uberwriter.css' $post | cut -d ':' -f1`
sed -i $delLine'd' $post
fi
# Add justify to post
justify='.post { text-align: justify; }'
if [ `grep -c "$justify" $post` == 0 ]; then
echo "Adding justify to post..."
addLine=`grep -n '<style type="text/css">' $post | cut -d ':' -f1`
if [ -z $addLine ]; then
addLine=`grep -n '</title>' $post | cut -d ':' -f1`
justify='<style type="text/css"> .post { text-align: justify; } </style>'
sed -i $addLine"a$justify" $post
else
sed -i $addLine"a$justify" $post
fi
fi
# Open links in new tab
if [ `grep -c 'a href=' $post` != 0 ]; then
echo "Adding target=\"_blank\" to urls..."
sed -i 's/a href=/a target="_blank" href=/' $post
fi
# Insert images
while read line; do
if [ `echo "$line" | grep -c "\.#.*#\."` == 1 ]; then
img=$(echo "$line" | grep -o "\.#.*#\." | cut -d '#' -f2)
if ! [ -r $imgdir/$img ]; then
echo "Error! $imgdir/$img not found!"
exit -1
fi
echo "Inserting $imgdir/$img..."
imgname=$(echo "$img" | cut -d "." -f1)
# Calculate size
imgwidth=$(convert $imgdir/$img -print "%w\n" /dev/null)
imgheight=$(convert $imgdir/$img -print "%h\n" /dev/null)
if [ $imgwidth -gt 400 ] && [ $imgheight -gt 400 ]; then
imgwidth=400
div=$(echo `convert $imgdir/$img -print "%w\n" /dev/null`/400 | bc -l)
imgheight=$(echo `convert $imgdir/$img -print "%h\n" /dev/null`/$div | bc -l)
imgheight=$(echo $imgheight | cut -d "." -f1)
fi
# Upload
if [ `google picasa list -n "$blogname" --fields url-direct --query $imgname | grep -c '.*'` == 0 ]; then
echo "Uploading $imgdir/$img..."
google picasa post -n "$blogname" $imgdir/$img
fi
# Get url
try=0
imgurl=''
while [ -z $imgurl ]; do
imgurl=$(google picasa list -n "$blogname" --fields url-direct | grep $imgname | head -n 1)
echo "Trying to fetch url of $img...$try"
sleep 1
try=$[$try+1]
done
imgurl_big=$(echo "$imgurl" | sed -e "s/\(.*\)\/\(.*\)/\1\/s1600\/\2/")
imgurl_small=$(echo "$imgurl" | sed -e "s/\(.*\)\/\(.*\)/\1\/s400\/\2/")
imgenv="<div class=\"separator\" style=\"clear: both; text-align: center;\"> \
<a href=\"$imgurl_big\" imageanchor=\"1\" style=\"margin-left: 1em; margin-right: 1em;\"> \
<img border=\"0\" height=\"$imgheight\" src=\"$imgurl_small\" width=\"$imgwidth\" /> \
</a> \
</div>"
# Escape imgenv
imgenv=$(echo $imgenv | sed -e 's/[]\/()$*.^|[]/\\&/g')
# Replace with urls
sed -i "s/\.#$img#\./$imgenv/" $post
echo "Image $imgdir/$img inserted!"
fi
done < $post
view raw processPost.sh hosted with ❤ by GitHub
$ gedit processPost.sh
# illesszük be a szkriptet, adjuk meg a blogname és imgdir változók értékeit, majd mentsük el a fájlt
$ chmod +x processPost.html
# így használhatjuk
$ ./processPost.sh postname.sh

További jó olvasgatást az oldalon!

2013. február 15., péntek

LaTeX szerkesztők tesztje: Kile, Gummi, Winefish

A legtöbb esetben, ha valamilyen dokumentumot kell készítenem - elsősorban, ha mások kezébe is kerül - szinte mindig a \(\LaTeX\) szövegformázó nyelvet használom az elkészítéshez. Aki nem ismerné, bővebb leírást a fenti linken talál róla, amit tudni kell róla, hogy nyomdai minőségű dokumentum előállítására képes rendszer, mely folyamat során szövegfájlokat kell szerkesztenie az írónak LaTeX nyelven, melyet lefordítva áll elő a dokumentum.

Legnagyobb előnyei szerintem, hogy a dokumentum szövegfájl forrása miatt nagyon hordozható, illetve a formázással a szöveg írójának kevesebbet kell törődnie; nagyon jó minőségű az előállított dokumentum; erőssége a nyelvnek, hogy képleteket egyszerűen szerkeszthetünk vele, és a rengeteg kiegészítésnek köszönhetően nagyon sok mindenre használható. Hátránya viszont, hogy egyes feladatokat talán nehezebb megoldani vele, mert nem egy WYSIWYG szerkesztő, azaz íráskor nem látjuk a dokumentum végleges formáját; nagyobb hozzáértést igényel, mint egy grafikus szerkesztőprogram.

A szöveges forrásfájl tulajdonság miatt szerkesztőnek használhatunk bármilyen szöveges szerkesztőt (Vim, Emacs, stb), azonban a könnyebb használat miatt érdemes olyat használni, ami segít egy kicsit a LaTeX nyelvű szerkesztésben. Kiegészítésekkel ezek elég jól használhatóak, a komolyabb szövegszerkesztőkhöz hatékony segítséget kaphatunk, mint például a Gedit-hez, Geany-hez. Szerintem mindenképp érdemes valamilyen grafikus szerkesztőt használni, ezért most a direkt LaTeX szerkesztésre fejlesztett programokat fogom bemutatni. Lássuk tehát, melyik miben jó, az olyan alap dolgokra, mint syntax highlighting, syntax check nem térek ki, mert ezek a funkciók mindegyikben megtalálhatóak.

  1. Kile

Előnyök:

  • rendkívül felhasználóbarát, az ezernyi menüpontnak köszönhetően bármit meg tudunk csinálni grafikus felületen, a gyakran használt nyelvi szerkezeteket egyben beilleszthetjük valamelyik menüből
  • van automatikus kódkiegészítés (ahogy gépelünk felajánl kódváltozatokat)
  • az egyéb nem LaTeX szerkesztőnek tervezett programokhoz képest előny, hogy könnyű a végleges dokumentum generálása: egy gombnyomással generál és mutatja egy PDF olvasó programban az eredményt

Hátrányok:

  • KDE-re épül, ezért erőforrásigényesebb, mint a másik kettő GTK widgetkészletre épülő szerkesztő.
  • a tényleg milliónyi menüpont és almenü pontok hátrány is lehetnek: könnyű eltévedni, és nehéz megtalálni dolgokat bennük

Telepítéshez:

$ sudo apt-get install kile
# telepítsük még az Okular pdf olvasót is hozzá
$ sudo apt-get install okular
  1. Gummi

Előnyök:

  • a program felülete két részből áll, az egyiken szerkesztünk, a másikon a dokumentum aktuális kinézetét látjuk, amit a Gummi a forrásba való beleírás után azonnal újragenerál
  • úgynevezett snippetek segítségével gyakran használt kódrészleteket illeszthetünk be, egy TAB gomb megnyomásával
  • nagyon egyszerű a kezelőfelület, és nem nagyon lehet eltévedni az opciók rengetegében

Hátrányok:

  • egy kezdő LaTeX-et használó számára nehéz lehet használni, mert nincsen automatikus kódkiegészítés

Telepítéshez:

$ sudo apt-get install gummi
  1. Winefish

Előnyök:

  • automatikus kódkiegészítés
  • a leghasznosabb funkciók elérhetőek menüpontokból, de mégsincs túl sok menüpont: ez a rész szerintem jól lett eltalálva

Hátrányok:

  • a program fejlesztése gyakorlatilag leállt, a program honlapja és GitHub szerint is ~6 éve nem volt módosítás a programon
  • semmilyen beállítási lehetőség nincsen, a generált kimenetet is csak és kizárólag az xpdf nevű nagyon fapados pdf olvasóval tudjuk megtekinteni a programon belülről

Telepítéshez:

$ git clone git@github.com:viettug/winefish.git
$ cd winefish
$ autoconf
$ sh ./configure
$ make
$ sudo make install
# telepítsük még az xpdf pdf olvasót is hozzá
$ sudo apt-get install xpdf

A három programot összevetve leginkább a Winefish-t ajánlanám, ha nem lenne egy nagy probléma vele. Az a tényező, hogy abszolút nincs mögötte fejlesztői támogatás, és semmilyen beállítási opció nincs nagyon nagy hátrány, hiába van jól eltalálva a legfontosabb LaTeX nyelvi elemek beépítése a menübe.

Tehát végül, aki valamilyen specializált célszoftvert akar valaki használni, vagy kezdő a LaTeX nyelvben akkor a Kile programmal érdemes kezdeni az ismerkedést. Viszont, ha kicsit jártasabb a LaTeX nyelv használatában és szerkesztés közben nagyon gyakran meg akarja nézni a dokumentum végleges formáját, akkor érdemes kipróbálni a Gummi-t is, hátha megtetszik.

Ha idáig elolvastad biztos új vagy még a LaTeX világában, és remélem sikerült meghozni hozzá a kedvet, vagy legalább egy jó szerkesztőt ajánlani.

Latex WikiBook tanuláshoz
Gummi hivatalos oldala
Winefish hivatalos oldala
Kile hivatalos oldala

2013. február 12., kedd

Steam telepítése Debian Wheezy-re

A Valve Corporation által kifejlesztett digitális tartalomközvetítő, -kezelő rendszert, valamint multiplayer és kommunikációs platformot rejtő programot szerintem senkinek nem kell bemutatnom. Elsősorban játékairól híres a Steam, rengeteg játék érhető el rajta (2013 február 07-én 1863 db) keresztül most már Windows, Mac OS X és egy ideje Linux rendszeren is.

Linux rendszerre tavaly novemberben indult meg a bétatesztelés, ezután hamarosan több igen híres játék vált elérhetővé, többek között a Serious Sam 3, Postal 2, Half-Life, Counter-Strike: Source, Killing Floor, és még sok másik. Jelenleg 50 játék érhető el Linuxon, de ezek száma gyorsan gyarapszik, és egyre csak nőni fog, ha másért nem a linuxos Steam Box miatt.

Telepítéshez:

wget http://kanotix.com/files/fix/install-steam-wheezy.sh
chmod +x install-steam-wheezy.sh
sudo ./install-steam-wheezy.sh

Telepítés után a steam paranccsal indítható. A program automatikusan frissíti magát, elég gyorsan fejlődik, pár napja például még tray iconja se volt, azóta azt is megcsinálták.

Egy tipp: nagyon jó játékok érhetőek el olcsón, legtöbbször többplatformos formában (akár Androidra, de nagyrészét Linuxon is ki tudtam próbálni) a Humble Indie Bundle honlapján. Aki nem ismeri: jótékonysági keretek között a vásárlók annyit fizetnek egy játékért, amennyit szánnak rá és több igen jó minőségű játékot adnak cserébe.

Steam hivatalos oldala

Steam for Linux honlapja