EgyProgramozo

Programozás cikkek

Regexper – regexp vizualizálás

Aki már írt regexp-et, az tudja, hogy elég szépen el lehet bonyolítani, hogy teljes homály legyen mit is csinál. Ennek kibogozására született egy oldal, amin vizuálisan megkapjuk a beírt regexp működését: http://www.regexper.com/

Példa pattern

Az alábbi szöszszenet a helyes dátum formátumot ellenőrzi (YYYY-mm-dd) /^[0-9]{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])/ Az évet még lehetne boncolgatni, de az most lényegtelen
2013.07.26.
Sublime Text 2 tapasztalatok

Az előző cikk óta használom ezt a szerkesztőt. Előtte a Komodo Edit volt a favorit, nagyon szerettem, de sajnos a Sublime olyan dolgokat tud, amit nem tud űberelni... ( Nemrég jött ki 8-as Komodo, amihez még nem volt szerencsém, de 1-2 dolgot megvalósít a Sublimeból. Ha valakinek van tapasztalata vele, várom szeretettel a hozzászólásokat ) A lényeget már az előző cikkben is leírtam, de más egyszer elolvasni ezeket és más átélni működés közben.

A felületről

Bal oldalt van egy panelünk, ide kerülnek a projectbe felvett mappák és bekapcsolható, hogy megjelenjen a megnyitott fájlok listája, így nem a füleket kell bogarászni, hanem itt kiválasztható a szükséges fájl. Az alap fülek kinézete olyan, mint a Chromeban. Ezt persze témával lehet módosítani. Ami szintén pozitív, hogy a "Jobbra eső lapok bezárása" funkció is meg van valósítva. Külön állítható a felület kinézete, ez változtatja a panelban lévő mappák, a fülek, meg a szerkesztőn kívüli felületek kinézetét, valamint külön állítható a szerkesztő rész színvilága. Már az alap sötét felülettel is nagyon jó, de található pár verzió a beállítások között (világos is). A szerkesztő felületet fel lehet osztani több részre a View -> Layout menüpontban. Lehet 2-3-4 oszlopra, 2 sorra vagy 2x2-es felosztásra állítani, kinek mi a kedvenc. Ezek méretezhetőek, így nem feltétlen azonos helyet foglalhatnak el a felületből.

Szerkesztés

A szerkesztő nagyon gyors összetett szavas szövegkiegészítővel rendelkezik, azaz egy hosszabb változó / függvény esetén elég leírni a szavak első karakterét, mint ahogy ez már ismerős lehet az Eclipseből. Ami nekem külön tetszett, hogy Komodo esetén csak azokat a változókat ajánlotta, amit az aktuális sor előtt használtunk, itt viszont a teljes fájlban keres, így könnyebb a kódban használt változónak alap értéket adni a blokk elején.

Ctrl + P

Szöveges navigáláshoz kapunk egy beviteli mezőt, ami az alábbiakat tudja:
  • Fájlok közötti ugrás
  • Adott fájlban:
    • Szövegre ugrás (#)
    • Függvényre ugrás (@)
    • Sorra ugrás (:)
Szintén érvényes, hogy az összetett szavaknál vagy mappáknál elegendő 1-1 karaktert megadni. Elég a mappa első karakterét megadni, majd a fájl első karakterét. A mappa teljes nevét beírva, pedig leszűri a benne található fájlokat. Ezek a funkciók kombinálhatóak, egy lépésben megnyithatunk egy fájlt és az X-edik sorára, vagy a megnyitandó fájl adott függvényére ugorhatunk.

Ctrl+Shift+P

Parancsok listája beviteli mező. Innen szövegesen indíthatjuk a menüben található funkciókat, valamint a telepített package managert is innen használhatjuk.

Többszörös szerkesztés

Más szerkesztővel szemben hatalmas előny, hogy egyszerre akár több sort is tudunk párhuzamosan szerkeszteni. Egy soron belül is lehet több kurzor, ha éppen úgy adódik.

Ctrl+D

A kijelölt szöveg következő előfordulását is kijelöli. A kijelöléseket ezek után egyszerre szerkeszthetőek. Ha ki akarjuk hagyni a legutolsó kijelölést, akkor Ctrl+K, Ctrl+D lenyomásával kihagyja és a következőt jelöli ki.

Ctrl+Shift+L

A kijelölt sorokat soronként szerkeszthetővé teszi. Ez akkor jöhet jól, ha például van egy listánk, amit tömbbé akarunk átalakítani.

Package Manager

A http://wbond.net/sublime_packages/package_control oldalról telepíthető a csomagkezelő, amivel extra funkciókat adhatunk a Sublime-hoz. A csomagokat Ctrl+Shift+P segítségével lehet adminisztrálni. ( telepíteni, frissíteni, törölni, listázni, stb) Én az alábbi csomagokat használom jelenleg:
  • Blogify - A kódot átalakítja könnyen publikálhatóvá
  • ColorPicker - Színválasztó ablak
  • DocBlockr - Automatikusan legenerálja az osztályok / metódusok komment részét
  • jQuery - jQuery segítő csomag
  • jQuery Snippets pack - Kiegészítők jQueryhez
  • memTask - Rögzíti, hogy az egyes fájlokkal mennyi időt dolgoztunk
  • SublimeCodeIntel - A Komodo-ban már ismert CodeIntel megvalósítása, nekem nem minden funkció működik.
  • SublimeTODO - Kiszedi a configban meghatározott szövegeket a fájlokból. TODO, FIXIT, stb
Kipróbáltam még a SublimeLinter csomagot is, ami képes megjeleníteni a forráskódban a hibákat, de egyelőre még fagy egy picit, a legtöbb indítás után leállította a Sublime-ot, így sajnos meg kellett válni tőle. Talán később jobb lesz.
2013.06.29.
Sublime Text 2
Sublime Text 2

Sublime Text 2 A hétvégén akadtam rá erre a nagyon letisztult és meglepően gyors szerkesztőre.

Mivel tűnik ki a többitől?

  • többszörös kijelölés: egyszerre több sorban tudjuk kijelölni az azonos részeket ( van lehetőség viszont kihagyni egyes elemeket ) és a kijelölteket egyszerre módosíthatjuk ( pl.: azonos változók tömeges cseréje )
  • tömeges módosítás: több sort kijelölve, egyszerre tudjuk módosítani azokat ( tömb készítés sorokból )
  • eclipse-hez hasonló kezdőbetűk beírásával függvények / változók ajánlása
  • gyors hozzáférés a parancsokhoz, fájlokhoz, projektekhez, fájlokon belüli függvényekhez
A szerkesztőt egy szép fekete témával kapjuk, a fülek a Chrome füleihez hasonlítanak, még az is meg van valósítva, hogy a jobbra eső lapokat zárja be. ( + pont )

Amilyen egyszerűnek tűnik első látásra, annyira el lehet benne mélyedni

A szerkesztő képességeit csomagokkal lehet még jobban kiegészíteni. Szerencsére az okosok készítettek egy csomagot, ami összefogja ezeket a telepíthető csomagokat, megkönnyítve a keresést, telepítést, frissítést. A csomagkezelő innen tölthető le: http://wbond.net/sublime_packages/package_control Az oldalon böngészhetjük a csomagokat, de a telepítést a Sublime-on belül kell elkövetni. Amit még mindenképpen meg kell oldanom, hogy több gép között szinkronizálódjanak a beállítások, de ez még idő hiányában várat magára. Hivatalos oldal: http://www.sublimetext.com/
2013.01.30.
Torrent automatikus letöltése HTPC-n ( Debian + XBMC )

Az alap ötlet az, hogy ne kelljen külön az asztali gépen letöltenünk az anyagot és azt felmásolni a htpc-re. A htpc kezelje le, ha kap egy torrent fájlt, töltse le és ha elkészült másolja a megfelelő mappába. Az XBMC-ben pedig már csak egy frissítést kelljen elkövetni. Az alábbi leírás alanya egy Debian testing ( wheezy ) és egy XBMC Froyo. Jelen esetben az XBMC verziója lényegtelen, mivel csak a Debianban kell ügyködni. Szükséges csomagok letöltése: apt-get install transmission-daemon Telepítés után állítsuk le a daemont: /etc/init.d/transmission-daemon stop Nyissuk meg szerkesztésre a transmission daemon settings fájlját: nano /etc/transmission-daemon/settings.json A webes felülethez való kapcsolódáshoz módosítsuk az rpc-whitelist változót *-ra, így bármilyen gépről hozzá tudunk férni otthon: "rpc-whitelist": "*" Mentés után indítsuk újra a daemont: /etc/init.d/transmission-daemon start Böngészőben pedig írjuk be a gépünk ip címét, valamint a settingsben megadott port-ot ( alapból 9091 ). Az alap felhasználónév és jelszó: transmission A webes felületen módosíthatjuk, hogy például milyen időszakban töltsön korlátozott sávszélességgel. Jól jöhet, ha egész nap megy a masina, de nem akarjuk, hogy nap közben a teljes sávszélességet megegye. Ha módosítani szeretnénk a settings.json fájlt, akkor először le kell állítani a daemont, mivel minden leállásnál kiíródik a settings.json. Ha futás közben kézzel módosítjuk a fájlt, akkor az felül fog íródni. A felhasználónév / jelszó szabadon módosítható. A jelszóban lévő tartalmat ki kell törölni és beírni a saját jelszavunkat. A következő settings kiírásnál már a kódolt változatot látjuk.

Torrent betöltése

Ezt a scriptet lefuttatva, egy általunk megadott mappát átvizsgálva az almappákban található torrent fájlokat hozzáadja a transmission daemonhoz. A script beállítja, hogy az elkészült fájlok hová másolódjanak. Külön le van kezelve, hogy ha a Sorozat almappában talál fájlt, azt az XBMC által implementált TV Series hiearchiának megfelelően másolja a megfelelő helyre. A fájl elején jól kommentezve megtalálhatóak a beállítandó fájlok.

Script futtatásának automatizálása

Az automatizálásra a rendszer által adott crontab-ot fogjuk használni. Ennek szerkesztéséhez írjuk be: crontab -e A fájl végére illesszük be a következőt ( az elérési utat írjuk át a megfelelőre ): 0 * * * * /home/xbmc/Dropbox/transmission.sh Jelen beállítás minden órában lefuttatja a script-et. Véleményem szerint ez bőven elég, de szabadon módosítható.
2012.12.24.
HTML átalakítása Textile formátumba

Új szórakozásom (nem szórakozás), hogy a HTML dokumentációkat akarom átvinni wiki-be, ami Textile formátumot használ.

2012.11.18.
Google Authenticator saját oldalhoz

Ma találtam egy nagyon jó kis leírást arra, hogy hogyan lehet a Google Authenticatorját saját programunkban használni. Az Authenticator előnye, hogy mivel idő alapú a kód, így nem kell a telefonnak nethez kapcsolódnia, így bárki, akinek van Android, iPhone vagy Blackberry telefonja könnyen használhatja.

2012.10.25.