A következő címkéjű bejegyzések mutatása: linux. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: linux. Összes bejegyzés megjelenítése

2015. január 3., szombat

Hatékony munkakörnyezet készítése Zsh terminállal

A Linux rendszerek felhasználói általában terminálok segítségével érik el céljaikat. Fejlesztőként nagy segítség lehet egy jól összerakott Linux környezet, de átlagfelhasználóként is fontos annak használhatósága. A Linux és OSX rendszereken általában a Bash shell az alapértelmezett, ennél azonban sokkal jobban testreszabhatóbb és fejlettebb az ezen cikk alapjául is szolgáló Zsh.

## Zsh telepítés
$ sudo apt-get install zsh
## beállítás alapértelmezett shell-ként
$ chsh -s `which zsh`

A legjobb dolog a Zsh-val kapcsolatban, hogy funkcionalitása pluginekkel könnyen kiterjeszthető. A legnépszerűbb módja a Zsh konfiguráció kezelésének az Oh My Zsh, mely a Zsh felhasználói közösség által készített keretrendszer.

## Oh My Zsh telepítés
$ curl -L http://install.ohmyz.sh | sh

jump, z

A pluginek az Oh My Zsh telepítésével már fel is lettek telepítve, csak engedélyezni kell őket a ~/.zshrc fájlban. Az elérhető pluginekről itt lehet bővebben olvasni. A következő plugineket mindenkinek ajánlom, sokkal produktívabbá teszik a parancssoros környezeteket, korábban már Bash shell-nél is használtam őket. A jump nevű kiegészítéssel gyakran használt könyvtárakat menthetünk el könyvjelzőként és később gyorsan ugorhatunk hozzá; míg a z plugin egy autojump variáns, amely megjegyzi, hogy milyen mappákba lépünk be gyakran és reguláris kifejezések illesztésével megpróbál a legjobb mappába ugrani. Példa a használatukra:

## jump
$ cd /very/very/very/very/very/long/path
## mentés könyvjelzőbe
$ mark longpath
$ cd ~/
## ugrás könyvjelzőhöz
$ jump longpath
$ pwd
/very/very/very/very/very/long/path
## mentett könyvjelzők listázása
$ marks
longpath  -> /very/very/very/very/very/long/path
## könyvjelző törlése
$ unmark longpath
## z
$ cd ~/
## legjobban illeszkedő mappába ugrás
$ z path
$ pwd
/very/very/very/very/very/long/path

Syntax highlight

Egy másik nagyon jó kiegészítés, amely nincs benne az alap pluginek között a shell syntax highlight. Ezt a feature-t a Fish shellből kölcsönözték és rendkívül hasznos, hogy az enter leütése nélkül is látszik, hogy helyes-e az adott parancs.

## syntax highlight plugin telepítése
$ cd ~/.oh-my-zsh/custom/plugins
$ git clone git://github.com/zsh-users/zsh-syntax-highlighting.git
## hozzáadás a ~/.zshrc plugins listához
$ sed 's/plugins=(\(.*\))/plugins=(\1 zsh-sytax-highlighting)/' -i ~/.zshrc

apt-fast

Ha voltál már vele úgy, hogy untad a hosszan tartó apt-get vagy aptitude letöltéseket, akkor ez a kiegészítés szintén neked szól. Az apt-fast egy wrapper, mely párhuzamosan több szálon tölti le a csomagokat, így drasztikusan csökkentve a letöltések várakozási idejét. Az Oh My Zsh keretrendszer tartalmaz autocomplete funkciót az apt-fast-hoz is.

## apt-fast telepítése
$ sudo add-apt-repository 'deb http://ppa.launchpad.net/saiarcot895/myppa/ubuntu utopic main'
$ sudo apt-get update
$ sudo apt-get install apt-fast

t

A következő kis program más módon teszi még használhatóbbá a terminálunkat. Ez pedig a t, mely egy rendkívül egyszerű, kevés feature-rel rendelkező, de azokat nagyon jól végző TODO list manager. Erőssége abban rejlik, hogy a teendőinket szöveges fájlba tárolja el, mely tulajdonságot - a Linux rendszereken megszokott módon - sok féleképpen kihasználhatunk: szerkeszthetjük, feldolgozhatjuk bármilyen szövegszerkesztővel, verziókezelhetjük, szinkronizálhatjuk gépek között teendőinket. Használata nagyon egyszerű:

## taskok létrehozása
$ t First task.
$ t Second task.
## taskok listázása
$ t
1 - First task.
2 - Second task.
## task törlése
$ t -f 1
$ t
2 - Second task.
## task szerkesztése
$ t -e 2 Other task.
$ t
2 - Other task.

Telepítése:

## t telepítése
$ mkdir -p ~/.scripts/t
$ git clone https://github.com/sjl/t.git ~/.scripts/t
$ mkdir ~/.tasks
## alias létrehozása t-re
$ alias t='python ~/.scripts/t/t.py --task-dir ~/.tasks --list tasks'

alias

Az Oh My Zsh rengeteg operációsrendszer specifikus alias-t tartalmaz, melyek könnyebbé teszik a munkát, de néhány sajáttal kiegészíteném a listát.

alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
alias ......="cd ../../../../.."

## biztonságos fájlműveletek
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

## telepítés egyszerűsítése
alias install='sudo apt-fast -y install' 
alias search='apt-cache search' 
alias purge='sudo apt-fast -y purge'

## vágólapkezelés
alias xclip='xclip -selection c'

## t
alias t='python ~/.scripts/t/t.py --task-dir ~/.tasks --list tasks'

Az xclip parancs segítségével terminálból vágólapra helyezhetünk szövegeket a következő módon:

## ilyenkor az 123 szöveg lesz a vágólapon
$ echo 123 | xclip

Összefoglalás

Látható, hogy a terminálunkból egy igen hatékony eszközt tudunk varázsolni, egy kis munkával. Ha fejlesztő vagy, nem nagyon lehet elkerülni a parancssoros környezetek használatát, így érdemes azok használatát megtanulni, és hogy ez ne járjon akkora fájdalommal, érdemes úgy beállítani a környezetet, hogy abból a legtöbbet tudjuk kihozni.

2014. november 14., péntek

Skype telepítése 64 bites rendszerre

A Skype programot valószínűleg mindenki ismeri így nem kell bemutatnom. Ha az általunk használt repository-kban nem található meg, letölthetjük előcsomagolt bináris változatban és azt telepíthetjük, vagy kicsomagolás után egyből futtathatjuk a tömörített verziót. Mindezek azonban csak a 32 bites Linux változatra igazak, 64 bites rendszer esetén nem tudjuk ilyen egyszerűen telepíteni a programot.

Először engedélyeznünk kell 32 bites programok telepítését, majd a Skype for Debian 7 (multiarch) változatot letöltve lehet telepíteni. A .deb kiterjesztésű csomag telepítése azonban sikertelen lesz néhány függőség hiányában, így azokat is telepíteni kell. A teljes folyamat a következő:

$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ wget http://www.skype.com/go/getskype-linux-deb-32 -O skype.deb
## feloldatlan függőségek miatt itt még nem fog települni a Skype
$ sudo dpkg -i skype.deb
## folytatnunk kell a telepítést a függőségek telepítésével, itt már a Skype telepítése sikeres lesz
$ sudo apt-get install -f

Sok sikert a telepítéshez!

2014. szeptember 16., kedd

Crunchbang Waldorf (Debian) frissítése Sid-re

Egy ideje már fontolgattam, hogy áttérek Crunchbang-emmel a Debian Sid tárolóira, mely a Debian disztribúció instabil változatát jelöli (a kiadás neve egyben egy szójáték, mely a Still in development rövidítése). Felelőtlen lépésnek tűnhet instabil szoftverekből álló rendszert használni, de korántsem így áll a helyzet, mert például az Ubuntu disztribúció is ezekre a csomagokra épül, és meglehetősen stabilnak mondható. Legnagyobb előnye ennek a módszernek, hogy így a legújabb szoftvereket használhatjuk rendszerünkben, és azok függőségei miatt nem (vagy legalábbis ritkábban) találkozhatunk a dependency hell jelenségével. A Debian változatok csak stable és testing változatokban érhetőek el saját telepítőlemezzel, így sid-et csak a következő módszerrel telepíthetünk. A leírást a Crunchbang-re vonatkozó részekkel fogom kiegészíteni.

  1. Először is adjunk hozzá néhány csomagtárolót a szoftverforrásainkhoz. Az /etc/apt/sources.list fájl a következő sorokat tartalmazza:
# Stable
deb http://ftp.de.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.de.debian.org/debian/ stable main contrib non-free
deb http://ftp.us.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.us.debian.org/debian/ stable main contrib non-free

# Testing
deb http://ftp.de.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.de.debian.org/debian/ testing main contrib non-free
deb http://ftp.us.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.us.debian.org/debian/ testing main contrib non-free

# Unstable
deb http://ftp.de.debian.org/debian/ unstable main contrib non-free
deb-src http://ftp.de.debian.org/debian/ unstable main contrib non-free
deb http://ftp.us.debian.org/debian/ unstable main contrib non-free
deb-src http://ftp.us.debian.org/debian/ unstable main contrib non-free

# Security
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free

# Crunchbang
deb http://packages.crunchbang.org/waldorf waldorf main
deb-src http://packages.crunchbang.org/waldorf waldorf main

# Debian Backports
deb http://http.debian.net/debian wheezy-backports main contrib non-free

# Debian Multimedia
deb http://www.deb-multimedia.org wheezy main non-free

Egy elég jó sources.list fájl generáló található itt, ha valaki magának szeretné összeválogatni a tárolókat.

  1. Növeljük meg az apt program cache-ét:
$ echo 'APT::Cache-Limit "134217728";' | sudo tee /etc/apt/apt.conf.d/99cache
  1. Adjunk prioritásokat a különböző szoftververziókhoz (ezt APT pinning-nek is nevezik), így alapértelmezetten a sid verziókat fogjuk telepíteni, de szükség esetén, ha egy program nem található, akkor fallback-elünk testing, vagy stable verziókra. Az /etc/apt/preferences fájl tartalma legyen a következő:
Package: *
Pin: release a=unstable
Pin-Priority: 700

Package: *
Pin: release a=testing
Pin-Priority: 650

Package: *
Pin: release a=stable
Pin-Priority: 600

Package: *
Pin: release a=waldorf
Pin-Priority: 550

Package: *
Pin: release a=wheezy-backports
Pin-Priority: 500

Package: *
Pin: release o=Unofficial Multimedia Packages
Pin-Priority: 450
  1. Frissítsük csomagjainkat és távolítsuk el, amikre már nincs szükségünk:
$ sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get -y dist-upgrade && sudo apt-get clean && sudo apt-get autoclean && sudo apt-get autoremove

Ez a fenti folyamat sokáig eltarthat, és lehetséges, hogy valahol elakad, ekkor manuálisan kell megoldanunk a problémát, és újra lefuttatni a fenti parancsokat.

Kiegészítés Crunchbang-hez

  1. A tint2 taskbar egy grafikus konfiguráló programja miatt, lehet, hogy nem sikerül frissíteni a tint2-őt, így először távolítsuk el majd csak utána frissítsük a tint2-t.
sudo apt-get purge tint2conf
sudo apt-get install -f
  1. A Crunchbang-hez tartozó saját csomagokat telepítsük újra:
sudo apt-get install --reinstall cb-lock cb-conky cb-exit cb-wmhacks cb-pipemenus cb-configs cb-slim
  1. Ha olyan témát használtunk korábban Crunchbang-ben, ami nem támogatja a GTK3 verziót, akkor itt bemutatom a waldorf téma GTK3-at is támogató verziójának beállítását. Elsőként töltsük le a módosított waldorf témát innen. Majd csomagoljuk ki valahova a tömörített Openbox témát, állítsuk be lxappearance segítségével, és érvényesítsük a GTK3 használatát:
$ sudo tar -xvzf waldorf.tar.gz -C /usr/share/themes
## állítsuk be `lxappearance` segítségével az előbb kicsomagolt témát
$ lxappearance
## érvényesítsük a GTK3 téma beállítását.
$ mkdir -p ~/.gtk-3.0
$ ln -s ~/.config/gtk-3.0/settings.ini ~/.gtk-3.0
  1. A slim login manager program témája is átállítódik a frissítés után, így ha az alap Crunchbang-es témát szeretnénk visszaállítani, akkor az /etc/slim.conf fájlban kell a current_theme értékét waldorf-ra állítanunk.

  2. A power manager újabb verziójában van egy bug, ami miatt nem jelenik meg tint2-ben az akkumulátor töltöttséget jelző kis ikon. Ennek megoldására telepítsük fel a stable változatát a programnak:

## először távolítsuk el a korábbi változatot
$ sudo apt-get purge xfce4-power-manager xfce4-power-manager-data
## telepítsük a stable változatot
$ sudo apt-get -t stable install xfce4-power-manager
  1. Indítsuk újra a gépet, és élvezzük a friss és ropogós programjainkat!

2014. február 23., vasárnap

Frontend tooling Yeoman segítségével

Minden fejlesztőnek megvan a maga kedvenc eszközkészlete, melyet szívesen használ valamilyen fejlesztéshez, jelentsen ez egy IDE-t, egy szövegszerkesztőt, verziókezelőt, build rendszert vagy bármi hasonlót. A következőkben a Yeoman eszközkészletet, vagyis még inkább egy munkafolyamatot fogok bemutatni, melyet front-end fejlesztéshez lehet használni.

Úgy tűnik az előző kicsit elméleti cikk után, mostantól néha fognak megjelenni kevésbé step-by-step leírások. A mostani is részben ilyen, hiszen egy technológiát fogok bemutatni, amely szinte módszertanként is használható a webes fejlesztések során.

Eredetileg megjelent a Kir-Dev oldalán

A Yeoman nevű programcsomag rendkívül megkönnyíti a front-end fejlesztők életét. Köszönhető ez a nagyon gazdag funkcionalitásának, mely könnyen kiegészíthető, konfigurálható, így tényleg a segédünkként tud szolgálni az eszköz. Alapvetően három, különállóan fejlesztett, de együttműködő NodeJS-ben írt alkalmazásról van szó, melyek különbözőképpen segíthetik munkánkat:

  • Yo: scaffolding eszköz
  • Bower: függőségkezelő eszköz
  • Grunt: feladatfuttató eszköz

Egyesével bemutatom mire képesek és hogyan kell őket használni. A könnyebb érthetőség érdekében egy komplett példán keresztül fogom bemutatni a Yeoman-t: egy AngularJS alapú kezdő alkalmazást fogunk készíteni.

Előkövetelmények és telepítés

Először is szükség lesz egy NodeJS telepítésére, ugyanis ez fogja futtatni a fenti programokat. Linuxon lehet csomagkezelőből, vagy forrásból telepíteni. Windows-hoz és Mac OSX rendszerre elérhetőek bináris formátumban is. Ha a NodeJS-t sikeresen feltelepítettük következhet a programok telepítése a NodeJS csomagkezelőjével.

# NodeJS letöltése
$ wget http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gz
# kicsomagolás
$ tar -xvzf node-v0.10.26.tar.gz
# fordítás
$ cd node-v0.10.26.tar.gz
$ ./configure && make
# telepítése
$ sudo make install
# Yo, Bower, Grunt telepítése
$ sudo npm install -g yo bower grunt

Yo

Mit is jelent a scaffolding? Alapvetően ezzel a fejlesztés sebességét tudjuk növelni. Sablonokat generálhatunk, melyekből kiindulva állhatunk neki egy program elkészítésének. Ezek a sablonok sokfélék lehetnek, az egyszerű konfigurációs fájloktól kezdve, melyeket más programok használnak, egészen a saját elkészítendő programunk vázáig. Lehetnek ezek fejlesztést segítő szkriptek, komplett szoftverstack vagy más boilerplate kódok, melyeket előre generálhatunk az alkalmazásunkhoz.

Ahhoz, hogy sablonokat tudjunk készíteni a Yo-val generátorokra lesz szükség. Egyrészt vannak hivatalos és még több a közösség által készített generátorok, melyekkel teljes alkalmazás vázakat és hozzájuk tartozó környezetet tudunk generálni. Például készíthetünk teljes AngularJS környezetet (ami integrálja a Bower és Grunt eszközöket is), mobil first weboldalt, Wordpress alapkörnyezetet, RevealJS vázakat, de készíthetünk szerver oldali alkalmazás szkeletonokat is, például ExpressJS-hez. Kezdjük el tehát az AngularJS kiinduló programunkat:

$ sudo npm install -g generator-angular
$ mkdir angularapp && cd angularapp
$ yo angular example

Elsőként telepítettük az AngularJS-hez szükséges generátort, majd egy mappában legeneráltuk a teljes kiinduló alkalmazás sablont. Az AngularJS egy MVVM keretrendszer, így tudunk olyan sablonokat generálni, mint az MVC-ből is ismert Controller, vagy a View elemeket valósítják meg.

$ yo angular:controller myController
$ yo angular:view myView

Bower

Senki nem szereti az alkalmazásának a függőségeit kézzel letölteni és azok minden újabb verziójánál újra eljátszani ezt a folyamatot. Az egyszerű megoldás valamilyen függőségkezelő eszköz (dependency management tool) használata, mellyel mindezt megtehetjük. A program intelligensen feloldja és telepíti a kívánt CSS, vagy JavaScript könyvtár saját függőségeit is. Például így kereshetünk a jQuery projektek között és telepíthetjük, a jQuery UI-t, majd frissítjük az összes telepített függőségünket:

$ bower search jquery
$ bower install jquery-ui
$ bower update

Grunt

Az utolsó eszköz amit bemutatok a Grunt, mely egy parancssoros feladat futtató (task runner tool). Ez sokat nem mond el magáról, de egy elég általános célú eszköz, ezért konkrétabban nem is lehet definiálni. Legjobban JavaScript alapú fejlesztéseink során alkalmazhatjuk, és temérdek feladatot végeztethetünk el vele nagyon egyszerűen. Néhány példa a sokrétű használhatóságára:

  • JavaScript fájlok minimalizálása, kódtömörítés (minify)
  • JavaScript kód obfuszkálása (uglify)
  • képek tömörítése a webre
  • JavaScript és CSS fájlok összefűzése
  • livereload Web szerver indítása teszteléshez, melyben az alkalmazásunk fut
  • szintaktikai ellenőrzések futtatása
  • egység és integrációs tesztek futtatása (előzővel együtt használva continuous integration-re is használható)

Ezek csak a beépített és gyakran használt funkciók, az eszköz ennél sokkal többre képes és egyszerűen kiegészíthető a közösség által készített újabb taszkokkal. Példa a használatára:

## livereload webszerver indítása
$ grunt serve
## tesztek futtatása
$ grunt test
## alkalmazás buildelése (kódtömörítés, obfuszkálás, stb.)
$ grunt build

Ezzel a Yeoman bemutatásának végére értünk, remélem hasznosnak találtátok, és sikerült bemutatni, mivel tudják kiegészíteni a front-end fejlesztők eszközparkját ezek a programok.

2014. január 31., péntek

Conky: Gmail szkript

Eljött az ideje, hogy lecseréljem az ősrégi Conky olvasatlan emailszám kijelző szkriptemet, mely egy nem teljesen erre a célra készített Perl szkript volt eddig. Megírtam tehát alig pár sorban Python3 segítségével az új verziót, mely körülbelül kétszer gyorsabb, mint az eredeti Perl szkript, valamint hálózati kapcsolat nélkül sem száll el.

Telepítéséhez szükség lesz a python-requests csomagra:

$ sudo apt-get install python-requests

Majd hozzunk létre egy fájlt, és illesszük be a szkriptet:

$ mkdir -p ~/.scripts
$ touch ~/.scripts/gmailToConky.py
$ chmod +x ~/.scripts/gmailToConky.py
$ gedit ~/.scripts/gmailToConky.py

Itt a szkript:

Így használhatjuk Conky-ban:

You have ${texeci 300 python ~/.scripts/gmailToConky.py} new gmail(s).

Megjegyzés: a korábbi Conky-hoz való szkriptjeim is frissültek (The Old Reader szkript, Google Calendar szkript), használatuk kis mértékben változott a Python3-ra való áttérés miatt.

2013. december 26., csütörtök

$HOME mappa titkosítása

Mindig érdemes a legrosszabbra készülni, és bár a legtöbben nem gondolnak rá, ha idegen kezekbe kerül a számítógépünk, akkor az adataink már nincsenek biztonságban. Sok fejfájástól szabadíthatjuk meg magunkat, ha valamilyen módon titkosítjuk az adatainkat. Ehhez nem is kell akkora áldozatot hoznunk, a műveletek végrehajtása se túl bonyolult, így csak magunkat hibáztathatjuk, ha nem gondolkozunk előre.

A következő titkosítási lehetőség az eCryptfs lesz, mely egy titkosított fájlrendszer amely transzparens módon működik a használt fájlrendszer fölött. Előnyei a blokk szintű titkosítással ellentétben (mint például a dm-crypt, vagy TrueCrypt), hogy nincs szükség előre allokált helyre a titkosításhoz, nem kell külön partíciót létrehozni, és viszonylag könnyű a használata. A hátrányok közé tartozik, hogy teljes partíciót nem lehet vele titkosítani (így például swap-et sem), valamint a ritka fájlok kezelésekor a teljes lefoglalt méretet titkosítja sok erőforrást felhasználva (így például Bittorrent fájlok titkosítására nem igazán hatékony).

Az újabb disztribúciók telepítéskor gyakran választhatjuk könyvtárak titkosításának létrehozását (az Ubuntu is eCryptfs-t használ, a $HOME könyvtár titkosításához), azonban később is titkosíthatjuk ezzel a módszerrel a $HOME könyvtárunkat. A titkosítás csak bejelentkezés után lesz feloldva, így senki nem férhet hozzá illetéktelenül az adatainkhoz.

  1. Telepítsük az eCryptfs kezelését megkönnyítő szkripteket:
$ sudo apt-get install ecryptfs-utils
  1. Töltsük be az eCryptfs kernel modult:
$ sudo modprobe ecryptfs
  1. Hozzunk létre egy root jogosultságokkal rendelkező felhasználót, ahova át kell lépnünk, míg a saját felhasználónk könyvtárát titkosítjuk.
$ sudo adduser testuser
$ sudo adduser testuser sudo
  1. Jelentkezzünk ki (logout), lépjünk át tty6-ra (CTRL + ALT + F6), lépjünk be az előbb létrehozott felhasználóval, majd ellenőrizzük, hogy nincs-e tényleg bejelentkezve a titkosítani szánt felhasználónk.
$ ps -fu <username>
  1. Titkosítsuk a $HOME könyvtárat:
$ sudo ecryptfs-migrate-home -u <username>
  1. Ha készen van, még újraindítás előtt jelentkezzünk ki (logout), lépjünk vissza tty7-re (CTRL + ALT + F7), lépjünk be az eredeti felhasználóval.

  2. Írjuk fel egy biztonságos helyre, és őrizzük meg a titkosítás feloldásához szükséges kódot:

$ ecryptfs-unwrap-passphrase
  1. Töröljük az ideigleneses létrehozott felhasználót, és a $HOME könyvtárunk titkosítatlan mentését:
$ sudo userdel -r testuser
$ rm -rf /home/<username>.<random karakterek>

Megjegyzés:

Innentől kezdve más rajtunk kívül más nem férhet hozzá az adatainkhoz. Meg kell jegyeznem még, hogy ha használunk swap-et, akkor előfordulhat, hogy egyes adataink a swap-re kerülnek, így azokat is érdemes titkosítani. Én SSD-t használok, így swap partícióm sincsen, de aki használ annak, hogy teljes legyen a kép leírok egy megoldást a swap titkosítására is. Telepítsünk egy eszközt (ez a megoldás a korábban már említett dm-crypt-et használja), amivel lehetséges a swap titkosítása, majd titkosítsuk azt.

$ sudo apt-get install cryptsetup
$ sudo ecryptfs-setup-swap

Ha titkosítjuk a swap-et nem fogjuk tudni hibernálni a gépünket, erre érdemes ügyelni!

2013. október 8., kedd

DinoPlayer - streaming zenelejátszó Firefox OS-re

A legújabb Firefox OS-re készült alkalmazásom, mely a DinoPlayer nevet viseli egy érintőképernyős eszközökre optimalizált streaming zenelejátszó alkalmazás. Legnagyobb előnye, hogy használatával nem kell rátöltenünk zenéinket telefonunkra, hanem egy tetszőleges internetről elérhető helyen kell csak elérhetővé tennünk .mp3 formátumú fájljainkat és onnan internetkapcsolat meglétében hallgathatjuk őket. További előnyök a zeneszámok adatainak (előadó, szám címe, album, év, hossz) automatikus kiolvasása, valamint automatikus borítókeresés zenehallgatás közben.

Fejlesztési oldalról érdekes lehet, hogy az egyes webes tárhelyek használatához nincs szükség semmiféle API-ra, például a tárolt zeneszámok adatainak kiolvasásához, hanem ezt is a HTML5 audio tag-jének segítségével oldottam meg (érdeklődőknek továbbiak a projekt GitHub oldalán). Ezért is terjeszthető ki szinte tetszőlegesen a támogatott webes tárhelyek listája.

Az alkalmazás felhasználói felülete teljes mértékben ismert gesztúrákkal irányítható. A képernyőre bökve hozható elő a zeneszámok indítására illetve leállítására szolgáló Play/Pause gomb, swipe mozdulattal lehet váltani a számok között. A szerver oldali komponensekkel való kommunikáció közben egy töltő csík látható a képernyő felső részében, ilyenkor töltődnek le a szám adatai, illetve a hallgatott zene albumjának borítója. Lehetőség van az adott zeneszám ismétlésére is a fenti jobb screenshoton is látható Replay gomb segítségével. A főképernyő bal felső sarkában lévő Menü gombbal hozható elő a menü, ahol egy listából kiválasztható a betöltött zenealbumból lejátszásra egy zeneszám. A menüben lehet újratölteni az eddig betöltött albumot, illetve itt lehet előhozni a lent is látható beállítások ablakot.

Beállítás

Mint ahogy korábban is írtam alapvetően bármely internetről elérhető helyről lehetőség van zeneszámok lejátszására a DinoPlayer-rel. Ehhez azonban először elő kell készíteni a DinoPlayer számára az adott zenemappát (telepíteni kell a DinoPlayer Helper-t), melyet Linux-ról és Windows-ról is megtehetünk. A DinoPlayer-hez mindenképp valamilyen cloud tárhely használatát ajánlom; most az egyik ajánlott tárhely a Dropbox beállítását fogom bemutatni DinoPlayer-hez.

DinoPlayer Helper telepítése

Linux:

Hozz létre egy mappát a Dropbox Public mappádban, és másolj bele .mp3 fájlokat. Töltsd le a telepítő szkriptet (install.sh) az előbb létrehozott új zenemappádba, és futtasd a szkriptet! Vagy csak simán futtasd terminálból az előbbi mappába lépve a következő parancsot:

$ curl https://raw.github.com/thesnapdragon/dinoplayer/master/install/release/linux/install.sh -o- | bash

Windows:

Hozz létre egy mappát a Dropbox Public mappádban, és másolj bele .mp3 fájlokat. Töltsd le a telepítő szkriptet (install.bat) az előbb létrehozott új zenemappádba, és futtasd a szkriptet!

Zenemappa hozzáadása

Miután telepítetted az előző pontban a DinoPlayer Helpert, Dropbox esetén a Public mappa azonosító számát és a zenemappa nevét kell csak megadni, melyet például a fenti screenshoton is látható módon lehet megszerezni Intézőből. Másik lehetőség a Dropbox oldalán belépve:

Ha egyéb tárhelyeket szeretnénk használni, a Más webes tárhely opciót kell választani, ilyenkor a zenemappa teljes URL-jét kell megadni DinoPlayer-ben. Dropbox esetén ez például a Public mappában található zenemappa teljes, publikus URL-jét jelenti.

A későbbiekben további webes tárhelyek használatához lesz segítség a programban, illetve további fejlesztések is várhatóak. Enjoy!

Hivatalos oldal

DinoPlayer a Firefox Marketplace-en

DinoPlayer GitHub oldala

2013. október 6., vasárnap

Prolog IDE készítése Sublime Text-ből

Prolog fejlesztéshez nincs túl sok jó fejlesztői környezet. Ha mégis ezt a nyelvet kell használnunk elég hamar megunhatóak a különféle Prolog implementációk interaktív programjainak használata. Sokat lassít a fejlesztésen mentés után a fájlok folytonos újratöltése, futtatása, meghívása. Bár léteznek például az emacs szövegszerkesztőhöz Prolog fejlesztést segítő kiegészítések, ha valaki egy felhasználóbarátabb megoldást keres, hasznos lehet számára az a környezet, amit most bemutatok.

Egy ideje elkezdtem használni a Sublime Text szövegszerkesztőt, elég sok leírás van róla az interneten, érdemes kipróbálni hátha megtetszik. A szerkesztő fontos tulajdonsága, hogy rendkívül könnyen kiegészíthető és rengeteg nyelvhez van beépített támogatása is, így sok esetben komplett IDE-ként használhatjuk.

Az ingyenes SWI-Prolog implementációhoz, már elkészítve találtam egy plugint, melyhez már létezik syntax highlighting, és egy komplett build system. Telepítéséhez a Package Control-ban (CTRL+SHIFT+P), a csomagok közt (Install Package) keressünk rá a Prolog szóra, és telepítsük a kiegészítést. Ezt a csomagot érdemes mindenképpen telepíteni a Prolog syntax highlighting miatt is. Kérdezhetnénk, hogy egy ilyen nyelvet, mint a Prolog, hogyan lehet "fordítani", vagy futtatni? Mivel a Prolog programokban nincsen olyan belépési pont, amely a program meghívásakor meghívódik alapértelmezetten, nem fogjuk tudni automatikusan futtatni az elkészült programunkat a szövegszerkesztőnkben. Egy kis kiegészítéssel, viszont a legtöbb Prolog implementációban elérhető az, hogy a Prolog interpreter indításakor automatikusan betöltse a programunkat egy fájlból, és meghívjon egy előre megadott célt (goal).

Ehhez készítsünk egy main elnevezésű goalt, ahol hívjuk meg az általunk írt, saját célt. Azért, hogy a Prolog visszalépéses mechanizmusát az interaktív programmal kikerüljük, érdemes a findall paranccsal az összes megoldását megkeresni a programunknak, melyet aztán egy listába foglalva kiírathatunk. Ezeket a lépéseket minden Prolog program írásakor meg kell tennünk, így érdemes összefoglalni snippet-be:

Tools > New Snippet...

majd másoljuk be a következő XML formátumban megadott snippetet, mely a main szó után egy TAB gombbal illeszthető majd be:

Ha valaki nem a fenti, ingyenes Prolog implementációt használja, hanem a Sicstus Prolog-ot, akkor egy kicsit más lesz a buildeléshez használható parancs; csináljunk egy új Build System-et:

Tools > Build System > New Build System...

és illesszük be a következő JSON-t:

Megjegyzés: Megfelelő működéshez hozzunk létre egy linket a prolog néven a Sicstus Prolog telepítésünkre:

cd /usr/bin
sudo ln -s <SicstusPrologElérésiÚt>/sicstus prolog

2013. szeptember 9., hétfő

FireReader - RSS olvasó Firefox OS-re

Az első Firefox OS-es alkalmazásom után egy kicsit bonyolultabb alkalmazást is akartam készíteni, amit az OwlCalc-hoz hasonlóan szintén szívesen használnék. Mivel a kedvenc RSS olvasómnak a The Old Reader-nek sokáig nem volt mobilra optimalizált programja, ezért úgy döntöttem, hogy egy RSS olvasót fogok készíteni, melyben benne lesznek a kedvenc funkcióim, amelyeket mindenképp elvárok egy RSS olvasótól. Így született meg a FireReader.

A FireReader a The Old Reader API-ját használja, mely teljes mértékben utánozza a jó öreg, eredeti, jól megtervezett Google Reader API-t. Azért, hogy ne kelljen semmilyen különleges más WebAPI-t használni, készült az olvasóhoz egy szerver oldali komponens is JSONP támogatással, mely ténylegesen kommunikál a The Old Reader gépeivel.

Az alkalmazásba való bejelentkezés után, a program lekéri a felhasználó feliratkozásait, melyek egy oldalsó menüben találhatóak meg, az olvasatlan feedek számának kijelzőivel együtt. Ez a menü hasonlít az Androidban is megtalálható megoldásra, amit például a Gmail app-ban is használnak. A menüből érhető el a beállítások és bejelentkezések oldal, valamint itt lehet frissíteni a feliratkozásokat. Ezen kívül a feliratkozások egy idő után elévülnek, ilyenkor maguktól újra frissülnek.

A feliratkozások megtekintésekor lehetőség van csak az olvasatlan, vagy az összes feed mutatására (ezt a beállításoknál is megadhatjuk alapértelmezett viselkedésként). A feliratkozásokat jelenleg listanézetben tekinthetjük meg, a listában görgetve a képernyőn látott feedek automatikusan olvasottnak lesznek megjelölve a felettük való átgörgetés után. Az adott feedre kapcsolva az olvasó nézethez jutunk, ahol lehetőség van elolvasni a cikket, vagy a böngésző ikonra kapcsolva elolvasni a feed eredeti változatát a rendszer alapértelmezett webböngészőjével. Olvasó nézetben, egy adott feliratkozás feedjei között swipe mozdulatokkal navigálhatunk, az elolvasott feedek automatikusan olvasottnak jelölődnek, ha még olvasatlanok voltak.

Az alkalmazásnak lehetnek még kisebb hibái, ezek bejelentését GitHub-on, Firefox Marketplace-en, vagy itt várom! Jöhetnek feature kérések is, szívesen berakok új dolgokat! :)

FireReader a Firefox Marketplace-en

FireReader GitHub oldala

2013. szeptember 4., szerda

OwlCalc - tudományos számológép Firefox OS-re

Elég régóta nem írtam cikket az oldalra, de sok mindennel foglalkoztam, ezért remélem most már lesz idő írni róluk. Az előző cikk óta fő projektem a Firefox OS operációs rendszerben rejlő lehetőségek, és alkalmazások fejlesztése erre az új rendszerre. Most első alkalmazásomat fogom bemutatni: az OwlCalc-ot.

Korábban sokszor hiányoltam egy olyan mobilos számológépet, amelyet körülbelül annyira egyszerű kezelni, mint egy jegyzettömb alkalmazást, és gyakorlatilag bármilyen gyakran szükséges összetettebb egyenlet megoldására is képes. Olyasmire gondolok, mint a Wolfram Alpha, vagy a Matlab, csak ingyenes verzióban. Most elkészítettem ezt az alkalmazást, elsődlegesen Firefox OS operációs rendszerre, de gyakorlatilag bármilyen más rendszeren is használható.

A kezdőképernyőn a legalapvetőbb használható matematikai formulákról, és a program kezeléséről olvashatunk egy rövid segítséget. Ez a súgó minden alkalommal megjelenik a rendszer indításakor, hogy lássuk milyen eszközöket is használhatunk.

Az eddig begépelt egyenletek között swipe mozdulatokkal tudunk navigálni, így visszatérhetünk egy korábban rosszul beírt egyenlethez, vagy továbbszerkeszthetünk egy korábbi egyenletet.

A beviteli mezőben található X gombbal törölhetjük az eddig beírtakat, a felső menüsorban található gombbal pedig törölhető a teljes eddigi előzmény.

Lássunk néhány példát a használható matematikai funkciókra:

Egyszerű egyenletek:

1.2 / (2.3 + 0.7)
eredmény: 0.4

Változók:

x = 10 * 2
eredmény: 2
x * 3
eredmény: 6

Előző eredmény felhasználása:

ans - 1
eredmény: 1

Előre definiált függvények:

sin(45 deg) ^ 2
eredmény: 0.5

Új függvény:

function f(x, y) = x ^ y
eredmény: f(x, y)

Függvény meghívása:

f(2, 3)
eredmény: 8

Számolás mértékegységekkel:

a = 5.08 cm + 0.8 m
eredmény: 0.8508 m

Mértékegységek átváltása:

ans in mm
eredmény: 850.8 mm

Remélem más is hasznát veszi ennek az alkalmazásnak! Hibákat, véleményeket várok itt, vagy az app GitHub oldalán, illetve a Firefox Marketplace-en!

OwlCalc a Firefox Marketplace-en

OwlCalc GitHub oldala

2013. május 31., péntek

Cubby használata Linux alatt

Most a magyar LogMeIn cég által készített Cubby névre keresztelt online fájlszinkronizációs és tárhelymegoldás használatát fogom bemutatni Linux környezetben. Először is: mire képes a Cubby? Funkcióját tekintve nagyon hasonlít a már elérhető fájlszinkronizáló megoldásokhoz, például a Dropbox-hoz, ennek ellenére több tekintetben is különbözik tőlük. Az egyik különbség a Direct Sync névre hallgató funkció, ami két gép között képes P2P-n keresztül, azaz a cloudba való feltöltés nélkül fájlokat szinkronizálni. Ezzel a megoldással nem használjuk fölöslegesen a cloud tárhelyét, mely ingyenes regisztráció után 5 Gb, további meghívottak regisztrációjával 25 Gb-ra lehet növelni. Másik hasznos funkció, hogy nem csak egy könyvtárat képes kezelni a Cubby, mint Dropbox esetén, hanem bármely mappából cubby-t készíthetünk.

Natív kliens csak Windows és Mac OS X, valamint mobil eszközöknél Androidra és iOS rendszerekre érhető el. Linux esetén (és más WebDAV protokoll kliens oldali támogatással rendelkező rendszer esetén) hozzáférhetünk a Cubby-hoz WebDAV-on keresztül is.

Ehhez először telepítsük a davfs2 nevű programot, mellyel Coda vagy FUSE eloszott fájlrendszeren keresztül csatlakozhatunk a WebDAV szerverhez. Ezután állítsuk be a mountoláshoz szükséges dolgokat és csatoljuk a Cubby-t.

# telepítsuk a davfs2-t
$ sudo apt-get install davfs2
# hozzunk létre a home-ban egy könyvtárat a Cubby-nak
$ mkdir ~/Cubby
# adjuk hozzá fstab-hoz a Cubby elérhetőségét
$ echo "https://webdav.cubby.com /home/$USER/Cubby davfs rw,user,noauto 0 0" | sudo tee -a /etc/fstab
# állítsuk be az autentikációs adatokat, ! USER, PASS adatokat saját adatokkal töltsük ki !
$ echo "https://webdav.cubby.com        USER   PASS" | sudo tee -a /etc/davfs2/secrets
# WebDAV mountolása rootként (setuid beállítása)
$ sudo chmod u+s /sbin/mount.davfs
# hozzáadjuk magunkat a davfs2 csoporthoz
$ sudo gpasswd -a $USER davfs2
# file lock-ok létrehozásának kikapcsolása
$ echo "use_locks       0" | sudo tee -a /etc/davfs2/davfs2.conf

Ha mindez megvan már mountolhatjuk is a Cubby-t:

$ mount ~/Cubby

Thunar kiegészítés

Mivel a WebDAV API még béta fázisban van, ezért a hivatalos dokumentáció szerint nem lehet fájlokat átnevezni, és mozgatni. Nekem azonban Thunar-ban működtek ezek a funkciók, egyedül törölni nem tudtam, mert a Thunar nem tudott Trash-t létrehozni a felcsatolt WebDAV-hoz.

Ez a probléma megoldható egyéni művelet létrehozásával:

  1. Szerkesztés \(\rightarrow\) Egyéni műveletek beállítása…
  2. Hozzuk létre az egyéni műveletet:
Név
Delete permanently
Leírás
Immediately delete the selected file(s) or folder(s)
Parancs
rm -rf %F
  1. Megjelenítési feltételek-nél pipáljuk ki mindegyik fájltípust.

2013. május 21., kedd

Conky: The Old Reader szkript

Ahogy ígértem már itt is a Google Reader olvasatlan feed értesítő Python szkript Conky-hoz. A korábbi verziót nem én írtam és nem is teljesen arra célra való, amire használtam, így inkább megírtam egy újabb változatot, ami a méréseim szerint majdnem kétszer olyan gyors, és 20%-al kevesebb erőforrást is használ működéséhez. Ráadásul így nem kell jelszót beírni a Conky konfigurációs fájlba, ami biztonságosabb is.

A szkript működéséhez szükség lesz a python-requests csomagra, tehát telepítsük:

$ sudo apt-get install python-requests

Telepítése nagyon hasonlít az előző cikkben szereplő szkripthez, hozzunk létre egy futtatható szkriptfájlt:

$ mkdir -p ~/.scripts
$ touch ~/.scripts/rssToConky.py
$ chmod +x ~/.scripts/rssToConky.py
$ gedit ~/.scripts/rssToConky.py

A megnyíló Gedit szerkesztőbe pedig másoljuk be a következő kódot:

Természetesen az emailcím és a jelszó mezőket ki kell tölteni. Ha mindez megvan akkor ugyanúgy lehet felhasználni, mint a korábbi változatot, egy lehetséges példa:

You have ${texeci 300 ~/.scripts/rssToConky.py} unread feed(s).

Az eredményről screenshotot az előző cikkben láthattok. :)

Update: A szkriptet időközben átírtam Python3-ra, így szükség van egy >3.x verzió telepítésére, amihez a pyenv eszközt ajánlom.

2013. március 6., szerda

Samsung Galaxy S Plus ROM: CM9 + CWM6 telepítés

A következőkben bemutatom hogyan lehet Galaxy S Plus-ra (i9001) feltelepíteni ClockworkMod Touch Recovery-t (CWM6), majd a CyanogenMod 9 RC-t (CM9). A CWM egy módosított recovery, mely sokkal többre képes, mint az alap gyári változat. Feltelepíthető az alap verzióra is, de ha már van egy CWM telepítve a telefonon, akkor frissíthető is ezzel a módszerrel egy újabbra. Egy már rendelkezésre álló CWM segítségével telepíthető a CyanogenMod, mely egy elég jó minőségű custom ROM. Most az Ice Cream Sandwich-re épülő 9-es verzióját fogjuk telepíteni, amellyel a telefon minden funkciója működik; nem nagyon vannak benne bugok; jobban testreszabható vele a rendszer, mint az alap Samsung-os verzióval; és talán kicsit gyorsabban is működik.

Csak saját felelősségre, ha tudod mit csinálsz akkor kövesd az alábbiakat.

Előkövetelmények

  • USB hibakeresés engedélyezése
  • Legalább 60%-ra töltsd fel a telefon akkumulátorát!
  • Személyes dolgok lementése

ClockworkMod Touch Recovery 6.0.13 telepítése

  1. CWM6 letöltése
  2. Letöltött .zip fájl SD kártyára másolása
  3. Telefon kikapcsolása
  4. Hangerő fel + bekapcsoló gomb nyomvatartásával lépjünk be a recovery mode-ba. Ha megjelenik a Samsung logo, pár másodperc után engedjük el a gombokat, amikor ezután az Android logo jelenik meg a dobozzal, akkor nyomjuk meg a menu gombot (nem a középső home gombot, hanem balra mellette). Ekkor belép az alap recovery-be.
  5. A következő menüpontokkal tudjuk installálni a CWM-et: install zip from the sdcard -> choose zip from the sdcard, keressük ki az előbb feltöltött .zip-et, azután yes-install.
  6. Hamarosan befejeződik az installálás és újraindul a telefon. Ha az installálás után nem akar betölteni a rendszer és mindig újraindul nem kell megijedni, az interneten sok helyen leírják ennek a bootloop problémának a megoldását:

Bootloop megoldása CWM telepítés után (a bootloader frissítéséhez most szükség lesz egy Win-re)

  1. Kapcsoljuk ki a telefont!
  2. Töltsd le az AriesVE.zip-et, a Boot_loader.tar-t, és a frissítéshez szükséges ODIN Multi-Downloader programot.
  3. Csomagoljuk ki az Odin-t, és rendszergazdaként indítsuk el a programot!
  4. Indítsuk el a telefont download módban: hangerő le + home gomb + bekapcsoló gomb egyszerre, amikor megjelenik a “Downloading… Do not turn off target!” akkor engedjük el a gombokat.
  5. USB kábelen csatlakoztassuk a telefont a számítógéphez!
  6. Ha az ODIN kiírja, hogy “Added”, akkor felismerte sikeresen a telefont.
  7. Csomagoljuk ki az ArieVE.zip-et, és az ODIN-ban az OPS gombra kattintva tallózuk is be a kicsomagolt ArieVE.ops-t!
  8. A BOOT gombra kattintva nyissuk meg a Boot_loader.tar-t.
  9. Majd egyéb beállításokat nem állítgatva, kapcsoljunk a Start gombra, egy ideig frissíti majd a boot loadert, majd újraindul a telefon, és már működnie kell.

CM9 telepítése

  1. Töltsük le a ROM xda-developers oldaláról a legfrissebb verziót. A legfrissebb verzió a cikk írásakor a 2013-02-20: CM9 rc5 [1], az 1-re kattintva letölthető innen. Valamint töltsük le az alap Google alkalmazásokat is, mert alapértelmezetten nincsenek telepítve a ROM-ban.
  2. Másoljuk rá a telefon SD kártyájára az előbb letöltött .zip fájlokat.
  3. Kapcsoljuk ki a telefont, majd lépjünk be CWM-be: hangerő fel + bekapcsoló gomb, Samsung logo után pár másodperccel engedjük el a gombokat. Hamarosan belép a CWM-be.
  4. CWM-ben hajtsuk végre a következőket: wipe data/factory reset, utána wipe cache partition.
  5. A letöltött CM9 verziót telepítsük: install zip from sdcard.
  6. Az előbbi módszerhez hasonlóan telepítsük a Google alkalmazásokat (gapps*.zip).
  7. Indítsuk újra a telefont, és akkor már az ICS fog elindulni.

Sok sikert a műveletekhez, remélem hasznos írás lett! :)

CyanogenMod hivatalos honlapja

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:

$ 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