iOmega StorCenter ix2-200 magyar ékezetes karakterek kezelése WinSCP alatt
Ha szeretnél az iOmega StorCenter ix2-200 tárolóhoz biztonságosan kapcsolódni, akkor nagy valószínűséggel te is a beépített SFTP lehetőséget fogod használni. Ezzel viszont az a gond, hogy a WinSCP nem kezeli le a magyar ékezetes könyvtárneveket. Vagyis lekezeli, csak alapból hibásan. Mindenféle kriksz-kraksz jelenik meg helyettük. Ezt könnyen lehet orvosolni, ha a WinSCP Login ablakban az Environment (környezet) alatt az UTF-8 encoding for filenames (fájlnevek UTF-8 kódolásban) lehetőséget nem Auto értéken hagyjuk, hanem kézzel biztosítjuk, hogy bekapcsolva legyen. Tehát az On (Be) értékre állítjuk!
Ezek után a magyar ékezetes fájl és könyvtárnevek máris tökéletesen megjelennek!
Hogyan töltsünk le egy teljes weboldalt wget segítségével
wget --recursive --page-requisites --html-extension --convert-links --restrict-file-names=windows --limit-rate=500k --user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1" --output-file download.log --domains example.com http://www.example.com
Az utasítássor értelmezése:
--recursive: A teljes weboldalt töltse le, minden hivatkozást bejárva
--page-requisites: Minden elemet töltsön le ami szükséges az oldalhoz (képek, CSS, stb.)
--html-extension: Minden lapot alakítson át .html kiterjesztésre, így bármelyik lap visszanézhető
--convert-links: Átalakítja a linkeket, hogy offline is lehessen böngészni
--restrict-file-names=windows: Az átalakítást windows fájlrendszerrel kompatibilis módon végzi el
--limit-rate=500k: A letöltési sebességet 500Kb/s-re korlátozza a túlterhelés elkerülése miatt
--user-agent="Mozilla/5.0...": Beállítható a User Agent, így normál böngészésként szimulálható a letöltés
--output-file download.log: A megadott napló állományba rögzíti a letöltés minden mozzanatát
--domains example.com: Megadható, hogy csak ebből a tartományból kövesse a hivatkozásokat
Parkolás Budapesten
Ez a cikk sem kötődik konkréten a blog témájához, de úgy gondolom sokaknak lehet hasznos, akik autóval közlekednek a városban. A parkolás mindig is problémás volt városunkban, de a fizetéssel aztán meg teljesen kaotikus lett. Melyik zóna is ahol este 8-ig kell fizetni és melyik ahol csak 6-ig? Hol van vakfolt a rendszerben? Illetve tudtad, ha két utcával tovább mész, akkor már csak fele a parkolási díj? Na ezek a kérdések amik engem sokszor az őrületbe kergettek, így kutakodtam egy kicsit. Találtam két nagyon jól használható megoldást. Az egyik gy PC-s, a másik egy Andriod-os. Tehát ha otthonról indulok akkor a gép elől is megtudom nézni, hol kéne letenni a kicsi kocsit. Illetve ha úton vagyok akkor pedig az okostelefon segíthet. Javaslom mind a két program megtekintését:
PC-s Budapesti parkolási térkép: (de az ország nagyvárosait is tartalmazza)
http://picipenz.com/parking_zones.php
Android alapú parkolást segítő alkalmazás:
https://market.android.com/details?id=eu.appround.parkingportal
iOmega StorCenter ix2-200 Cloud Edition
Ez az írás csak egy szűk közönséget érdekelhet illetve engem, ha még egyszer valami miatt elő szeretném venni mit is csináltam pontosan. Ugyanis ez a post arról fog szólni, hogyan kell SSH hozzáférést beállítani az iOmega StorCenter ix2-200 Cloud Edition eszközön, valamint szoftvereket telepíteni és használni.
SSH Hozzáférés
Az iOmega StorCenter ix2-200 család esetén erre több mód is van, de a legkényelmesebb, hogy a webes felületen a következő oldalra lépünk: http://<NAS-IP>/diagnostics.html
(amennyiben csak a sima változattal, azaz nem cloud edition akkor a http://<NAS-IP>/support.html fog kelleni)
Itt értelem szerűen az "Allow remote access for support (SSH and SFTP)" lehetőséget pipáljuk be, majd Apply és Restart.
Ezek után Putty segítségével csatlakozhatunk az eszközhöz. Felhasználói név root a jelszó pedig soho + "webUI admin jelszava". Tehát ehhez aktiválni kell a Security modult a webes felületen és be kell állítani az admin felhasználót. Ha a nas-t adtuk meg jelszónak, akkor a jelszó sohonas lenne.
Szoftverek telepítése
Mivel a gyári szoftver nagyon lecsupaszított emiatt általam eddig ismeretlen csomagkezelőt javasoltak több fórumon is, ami tutira működik. Hát igen, mert az apt-get több hibával is nagyon csúnyán elszáll. Így nincs más hátra mint az ipkg csomagkezelőt belőni. Ehhez csak annyit kell tenni, hogy egy konfig fájlban meghatározzuk hol található a csomag repo.
cat <<EOF > /etc/ipkg.conf
src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable
src native http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable
EOF
Innentől pedig már majdnem a szokott módon használható:
- ipkg update
- ipkg upgrade
- ipkg list
- ipkg list_installed
- ipkg search <csomag neve>
- ipkg install <csomag neve>
- ipkg remove <csomag neve>
Viszont a telepített szoftvereket a /opt/bin/ mappába helyezi így a programokat onnan kell futtatni. Ez elkerülhető két módon is. Az első esetben az egész /opt/bin/ könyvtárat a $PATH környezeti változóhoz hozzáfűzzük.
PATH=/opt/bin/:$PATH
Így minden ott lévő állományra működni fog a parancsfuttatás és parancskiegészítés. Nem biztos, hogy ez a legjobb megoldás, mert más állományok is találhatók itt amiket nem mi telepítettünk.
Véleményem szerint a szebb megoldást az Alias alkalmazása adja. Az eredmény pedig ugyan olyan jó. De ezzel elkerüljük, hogy egy teljes könyvtárat "globálissá" tegyünk.
alias <parancs>='/opt/bin/<parancs>'
Konkrétan az MC-re ez: alias mc='/opt/bin/mc'
Frissítés:
Ezekkel az utasításokkal csak annyi a gond, hogy nem perzisztens a rendszerre nézve, tehát újraindítás után elveszik. Mivel a NAS egy nagyon kiszuperált Debian 5.0.6 verziót használ SH shell kíséretében, méghozzá úgy hogy a root felhasználó home könyvára a gyökér, tehát a "/". Ez egy kicsit megbonyolította a dolgot, hiszen így nincs más lehetőségünk mint globálisan megpiszkálni a $PATH változót, hogy újraindítás után is megmaradjon. Ehhez csak a következőt kell tenni:
Nyissuk meg a kedvenc szövegszerkesztőnkkel (vi, nano, mcedit) a /etv/profile állományt, ahol a következőt kellene látni:
if [ "`id -u`" -eq 0 ]; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" else PATH="/usr/local/bin:/usr/bin:/bin:/usr/games" fi
Itt kellene a PATH változóhoz hozzáadni a /opt/bin könyvtárat. Ha megelégszünk azzal, hogy csak a root felhasználó esetén legyen parancskiegészítés akkor elegendő az első sort módosítani, ha a többi felhasználóhoz is szeretnénk ezt megtenni, akkor pedig a második sorhoz is.
if [ "`id -u`" -eq 0 ]; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin" else PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/opt/bin" fi
Imádlak 27%-os Áfa
Nem is olyan kis kihagyás után most végre volt egy kis időm foglalkozni a hobbimmal így gondoltam feldobok egy cikket a honlapra. Mivel ezeket a bűvös számokat úgyis elfelejteném. Lehet másnak is szüksége lesz rá, így gondoltam megosztom a nagyérdeművel.
Történt ugyanis, hogy szuper kormányunk kitalálta, legyen az Általános Forgalmi Adó rövidebben Áfa, kishazánkban 2012. január 1-től 27%. Ez lett innentől, ezt kell szeretni. Bár én még nem békültem ki vele. A 25% olyan szép szám volt és kezelni is olyan egyszerű volt. Főleg ha a bruttóból elő akartad állítani a nettót, mert fontos volt valami miatt és a honlap ezt nem közölte veled. Ugye emlékeztek, csak a jó kis 0.8-as szorzót kellett használni, és máris megtudtuk mi a nettó ár.
Ha ugyan ezt szeretnéd megtenni, csak az új 27%-os Áfa mellett, már kicsit problémás a helyzet. Gyakorlatilag egy mini esőemberképzőt kell elvégezni, hogy megjegyezhessük a 0.7874015748031496 -os számot! Ugyanis ez az a pontos érték amivel január 1. után minden bruttó számot be kell szorozni, hogy megkapjuk annak nettó értékét.
Sajnos vannak olyan kicsit hányattatott ismerősök aki áraikat eleve bruttóban adták meg és mindig azzal számoltak. Tudjuk ez nem jó módszer, hibás gondolkodás de ez van, nekik így volt kényelmesebb. Na most nekik van egy másik csoda szám is amit érdemes fejben tartaniuk, ha a bruttó árukat nem szeretnék megváltoztatni, hanem nettó árukat szeretnék a jelenlegi bruttóhoz igazítani. Akkor a jelenlegi nettó árat (ami a 25%-os Áfára volt optimalizálva) a 0.9842519685039370078740157480315 számmal kell beszorozniuk, ami megadja az új nettó árat, amire a 27%-os Áfát rászámolva a bruttó ár változatlan marad. Éljen az új világrend :)
Főoldal és az index duplikátumok problematikája
Ugye SEO szempontból felmerül az a gond, hogy ugyan az a tartalom érhető el a www.domian.hu és a www.domain.hu/index.php tartalom alatt. Tehát duplikátum. A megoldás lehet a canonical használata, de szerintem sokkal elegánsabb megoldás, ha .htaccess segítségével védjük ezt ki.
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.(html?|php|asp|cfm)\ HTTP/
RewriteRule ^(.*)index\.(html?|php|asp|cfm)$ $1 [R=301,L]
Eredménye:
| http://www.domain.hu/ | http://www.domain.hu/ |
| http://www.domain.hu/index.htm | http://www.domain.hu/ |
| http://www.domain.hu/index.html | http://www.domain.hu/ |
| http://www.domain.hu/index.php | http://www.domain.hu/ |
| http://www.domain.hu/index.asp | http://www.domain.hu/ |
| http://www.domain.hu/index.cfm | http://www.domain.hu/ |
Több domain használata egy tárhelyen. Azaz a .htaccess és a multiple redirect
Vannak olyan esetek, amikor egy honlaphoz több domaint kell használni. De a duplikált tartalom ellen is küzdeni akarunk. (Tehát a honlapot csak www-vel lehessen elérni, nélküle ne)
Célunk tehát a a domain1.hu és domain2.hu tiltása és a www.domain1.hu és www.domain2.hu engedélyezése. A megoldáshoz a .htaccess hívjuk segítségre.
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain1\.hu [NC]
RewriteRule ^(.*)$ http://www.domain1.hu/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^domain2\.hu [NC]
RewriteRule ^(.*)$ http://www.domain2.hu/$1 [L,R=301]
Eredménye:
| domain1.hu | http://www.domain1.hu |
| www.domain1.hu | http://www.domain1.hu |
| http://www.domain1.hu | http://www.domain1.hu |
| sub.domain1.hu | http://sub.domain1.hu |
| domain2.hu | http://www.domain2.hu |
| www.domain2.hu | http://www.domain2.hu |
| http://www.domain2.hu | http://www.domain2.hu |
| sub.domain2.hu | http://sub.domain2.hu |
A megoldás egyetlen hátránya, hogy az összes domaint fel kell sorolni. De onnantól kezdve szépen átirányít. Arra viszont figyeljünk oda, hogy ha aldomaint is szeretnénk átirányítani, akkor azokat is fel kell sorolni. Tehát ez a megoldás alapesetben az aldomaineket nem módosítja. (sub.domain1.hu cím megmarad)
Ha nincs szükségünk aldomainekre, akkor használhatjuk a következő "univerzális" megoldást:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.|$) [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Eredménye:
| domain1.hu | http://www.domain1.hu |
| www.domain1.hu | http://www.domain1.hu |
| http://www.domain1.hu | http://www.domain1.hu |
| sub.domain1.hu | http://www.sub.domain1.hu |
| domain2.hu | http://www.domain2.hu |
| www.domain2.hu | http://www.domain2.hu |
| http://www.domain2.hu | http://www.domain2.hu |
| sub.domain2.hu | http://www.sub.domain2.hu |
vagy ellenkező párját, ahol a www-t távolítjuk el:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST}//s%{HTTPS} ^www\.(.*)//((s)on|s.*)$ [NC]
RewriteRule ^ http%3://%1%{REQUEST_URI} [L,R=301]
jQuery Tools – The missing UI library
Minap rátaláltam erre az oldalra: http://flowplayer.org/tools/index.html, s gondoltam megosztom a nagyérdeművel is.
A tooltip és az Expose, valamint a Scrollable egy-egy speciális változata nagyon tetszett. Szerintem egy következő projektemnél fel fogom használni őket! Ajánlom másoknak is!
Oldal görgetése jQuery-vel
A mai web kettes honlapoknál, vagy akár csak írhatnék annyit is, hogy a jelenlegi grafikai tervezések elmentek olyan irányba, hogy jó magas fejléceink legyen az oldalon, szép és nagy felbontású képekkel. Emiatt előállhat az az eset, hogy az oldalt kis felbontással (pl.: 800x600) nézik, meg melyből a hasznos magasság kb. 450-500px a böngészőtől függően. De mit tehet az ember ha ekkora csak az oldal fejléce? Hiszen a látogatónak görgetnie kell, egy teljes monitornyit, hogy a tartalomhoz elérjen... És mint tudjuk, ami nem fér ki egy 800x600 vagy egy 1024x768-as felbontáson, az olyan információ mint ha nem is lenne... Szóval ezen esetekben csalni kell szerintem... Mert a megrendelő ragaszkodik a szép design-hoz, de a látogatót meg a tartalom fogja érdekelni... A megoldás jQuery és a scrollTo plugin.
És egy kicsit más fajta kódot ajánlok mint a plugin fejlesztői:
<script src="jquery.scrollTo-min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
if ( $(window).height() < 650 )
{ setTimeout('$.scrollTo( "#scrollHere", 800 );', 500); }
});
</script>
Azért ezt, mert így csak azoknak fog scrollozódni az oldal akiknek kicsi a felbontásuk. Akiknek nagy, azoknak nem. De gondoljunk is bele, hogy ez miért kell. Abban az esetben, ha valakinek nagyobb a felbontása mint az oldal teljes magassága, nincs probléma, hiszen nincs hova scrollozni. De mi van akkor ha csak 20 pixellel is, de nagyobb a tartalom mint ami az ő felbontása... Akkor minden lapletöltésnél, egy 20 pixelt ugrana az oldal... Ami pont elég idegesítő mozgás, de görgetésnek még nem nevezném... Szóval amit nyertünk kis felbontásnál, azt elvesztettük nagynál. De ha úgy oldjuk meg ahogy én javasoltam, akkor a nagy felbontások problematikáját megoldottuk. Persze erre az egészre csak akkor van szükség, ha az oldal betöltődése után egyből akarjuk scrollozni a tartalmat automatikusan.
xHTML kimenet tömörítése
Mostanában sokat foglalkoztam honlapok optimalizációjával, nem csak SEO értelemben. Így futottam bele az YSlow FrieBug kiegészítése. Nézegettem az ajánlásait, s ezen új szemlélet megismerése kapcsán írok majd néhány scriptet. Nem tudom észrevettétek-e de már voltak hasonló gondolatok itt, csak azok átkerültek az Érdekes oldalak alá. Ott megtalálhatjátok, a JavaScript és CSS kompresszorokat.
Az első nem más, mint hogy hogyan érhetjük el nagyon egyszerűen, hogy a kimeneten fölösleges (whitespace) karakterek ne legyenek. Ezzel "tömörítve" az xHTML kódunkat. A most következő PHP kódunk lényege az, hogy egy kimeneti pufferbe begyűjti a teljes weblapot, majd amikor a kimenetet kiküldi, előtte meghív rá egy függvényt, ami a fölösleges karaktereket eltünteti.
Mivel ez a drágalátos WordPress nem enged mindenféle kódot beleírni egy postba, ezért a megoldást kénytelen vagyok linkelni... Az eredeti cikk ahonnan a forrás jött:
http://davidwalsh.name/compress-xhtml-page-output-php-output-buffers