Twitter (244):

"Régi, de jó: Levél Garciának http://t.co/QTutMWBC"

Samsung Galaxy S gyorsítása

Quadrant benchmark

Quadrant benchmark

Van nálam egy ideje egy a címben megnevezett készülék, amit több nekifutással próbáltam már megszeretni, de nem sikerült.

A legváratlanabb pillanatokban akadt meg, vált működésképtelenné. Sokszor a telefonhívásokat sem tudtam fogadni vele és hosszú hosszú ideig kellett arra várni hogy egy űrlap mezőbe kattintva megjelenjen a billentyűzet. Szép magyar kifejezést is találtam erre: lagos volt. ^_^

Elkezdtem kutatni a megoldásokat, gyűjtöttem a linkeket majd akcióba lendültem.

Fontos megjegyezni, hogy a leírt megoldás, illetve az alternatív utak mind mind csak egy rövid időszeletre, egy meghatározott oprendszer verzióra és a Galaxy S készülékre vonatkoznak. Sajnos ezt az utat nem lehet akármikor akárhogy végigjárni, egy év múlva már szinte biztosan nem lesz aktuális :)

A lassulás gyökere a tudor fórumírók szerint az, hogy a Samsung megoldotta már a 2.1 -nél azt, hogy nagyobb memória álljon rendelkezésre az alkalmazások telepítésére. Ezt úgy éri el, hogy a belső SD kártyából kiharap 2GB -t erre a célra. Valamiért egy RFS nevezetű, nem túl népszerű filerendszerre esett a választása, ami igen rossz teljesítményt mutat az IO műveletek esetén. A lag fixek mindegyike tehát azon dolgozik, hogy a belső SD kártyán  lévő filerendszert lecserélje valami okosabbra (van amelyik ext4 -re és van amelyik ext2 -re – azt is megemlítik, hogy az Android 2.3 -tól már ext4 lesz a default).

Van, amelyik megoldás egy 1.5G -s ext2 -es image filet készít, ebbe mozgat át mindent, majd symlinkeket készít az eredeti filerendszerben. Van amelyik ext4 -re cseréli le az rfs -t.

Elkezdtem tehát kipróbálni a legegyszerűbbnek tűnő megoldásokat, némelyik igényli a telefon rootolását (amit vissza lehet ugyan csinálni, de garanciavesztéssel járhat), némelyik pedig nem. A legeslegegyszerűbb megoldások esetén elég letölteni egy egy apk -t, feltelepíteni, majd futtatni. Sajnos az én készülékemen ezek nem működtek, de esetleg 2.1 -en, más készüléken működhetnek:

  • One Click Lag Fix – rootolás nélkül nem működik, az ext2 -es imagefile módszert használja
  • z4root – letöltöttem, de nem tudta rootolni a telefont
  • update.zip -es rootolás – lehet hogy működik, de végül nem ezt választottam, mert rátaláltam a voodoo -ra

És most lássuk, hogy egy GT-I9000 (2.6.32.9), Froyo (Android 2.2) -val hogyan táltosítható. Ha 2.1 -ed lenne, akkor szerintem előbb frissíts (Kies -el, vagy ha azzal nem megy, Odin -nal), mert a táltosítás után nem lehet upgradelni, csak ha visszacsinálod csigává…:

  1. Az általam választott megoldás a Voodoo lag fix. Az oldalon részletes leírás olvasható arról hogy miért ez a legjobb, legbiztonságosabb és legstabilabb módszer.
  2. Elvileg a letöltött zip -et csak fel kell tenni a telefon SD kártyájára, a gyökérkönyvtárba és újra kell indítani Recovery módban a telefont. Ehhez a telefon indulásakor lenyomva kell tartani a hangosítás (és véletlenül sem a halkítás), a home és a bekapcsoló gombokat. Induláskor lefut a lagfix és kész is a gyors telefon.
  3. Mivel az én készülékem nem reagált a 3 gombos kombora, kerülőutat kellett találnom (néhány telefon ilyen sajna…):
    1. Kell hozzá JDK telepítés (ez az Android SDK -nak kell)
    2. Kell hozzá Android SDK telepítés
    3. Kell hozzá a Samsung KIES telepítés (az USB driverek miatt)
    4. Kell az SDK -ból az ADB tool
    5. Ha fentiek megvannak, csak le kell futtatni az “adb reboot recovery” parancsot. Ha szeretnénk, ha működne a későbbiekben a háromgombos szervíz mód, akkor kövessük ezeket az utasításokat.
  4. Opcionális megoldás, az ODIN használata. Az Odin egy olyan svájcibicska, amit szervízekben is használnak nagy előszeretettel, viszont használata kockázatos lehet, ha nem vagyunk elég figyelmesek. Én Odinnal tettem fel a Voodoo lag fixet (persze ilyenkor az Odines változatát kell letölteni a Voodonak) és ezzel javítottam meg a három gombnyomásos szívmegállást is. Persze arra ügyeljünk, hogy az Odines telepítés esetén nem recovery mód kell nekünk, hanem Download mód, amit pedig a Halkítás+Home+Bekapcsgomb lenyomással, vagy az “adb reboot download” paranccsal érhetünk el (ilyenkor induláskor sárga robotocska látható amint éppen ás…). Az Odin ugyancsak jó barátunk lehet, ha a fránya Kies (legalább olyan hírhedt mint a Nokia PC suit…) nem akarná upgradeli a 2.1 -es telefonunkat.

A voodoo -s patchben vicces, hogy miután újraindítottuk a telefonunkat és dolgozik a táltosításon, kellemes női robothangon (a robotoknak van neme?) meséli hol is tart éppen… Kb. 8 percig tartott a műtét.

Mit is mond magáról ez a Voodoo (pro és kontrák):

  • módosíthatja kissé a színsémát és az élességet (a Voodoo srácok javítottak ezeken a paramétereken, mert szerintük kissé kékes és túl élesített az eredeti beállítás) – én nem vettem ezt észre eddig
  • ugyanígy javítottak kicsit a videók világosság beállításain is, a túl sötét részletek jobban láthatóak így
  • a módszer működik rootolás nélkül is (én rootoltam, és nem bántam meg)
  • bármikor kikapcsolható a lagfix egy elég egyszerű művelettel
  • egy magyarázat arra nézve, miért nem ext4 -et használ a Samsung is, ha ez ennyit számít: a flash memóriák írási ciklusainak száma korlátos, az ext4 naplózott filerendszer és még az ext2 -nél is többet ír és olvas rajta egy jólnevelt oprendszer. Emiatt a flash memóriák élettartama rövidebb lehet. Viszont arra nézve nincsenek pontos adatok, hogy a gyakorlatban ez mit jelent (8 helyett 6 év?)
  • a Quandrant benchmark app (Marketből letölthető) szerint legalább 2x -es a gyorsulás, érdemes lefuttatni előtte és utána. Ha 900 körül van a mért érték, nem működik a lagfix, ha 1500 fölött, akkor pedig valószínüleg igen :)

Végezetül pedig nem győzöm eléggé hangsúlyozni hogy mekkora jelentőségű ez a gyorsulás. Egy iPhone 3Gs -el párhuzamosan használva a Galaxy egy akadozó, lomha emiatt nyűgös és mellőzött jószág volt. Most azon veszem észre magam, hogy gyakrabban van a kezemben mint kecsesebb társa. Mindden Galaxisnak melegen ajánlom!

Megjegyzés: Az Odint, Kies -t eredetileg egy Mac -en, virtuális gépben futtatott windowssal kezdtem el bűvölni. Te ne tegyél ilyet. Parallels, Virtualbox és VMware Fusion közül az utóbbi tudta elcsípni az USB -re kötött telefont, de ez sem volt képes következetes és biztos kapcsolatra. Maces barátaim, sunnyogjatok csak oda (mint ahogy én is tettem végül) egy Windowsos pajtásotokhoz egy rövid Odinozáshoz, Kies bütyköléshez :)

Nginx, Ubuntu 10 és a PHP-FPM

Lassan egy éve kezdtem el barátkozni az Nginx webkiszolgálóval és azóta is elégedetten használom az első szerveremen. Érdemes tudni róla, hogy jelentősen kevesebb RAM -ot eszik az Apache -nál és sokkal gyorsabb annál.

Számomra egyetlen hátránya az, hogy nem kezel .htaccess -t (persze az abban megfogalmazott funkciókat igen, csak máshogy), ezért a virtual host konfigokban kell megírni ezeket a beállításokat.

Annak idején kicsit körülményes volt a beállítása, most eljött az idő, hogy a tudomány mai állása szerint írjak valamit arról, hogy is kell feltenni Nginxet PHP támogatással szerintem a legegyszerűbben (Ubuntu 10.04 -re, apc cache -el):

1. Telepítés

add-apt-repository ppa:brianmercer/php && sudo apt-get update
apt-get install nginx php5-fpm php-apc php5-cgi php5-cli \
php5-mysql php5-common php-pear php5-curl php5-suhosin \
php5-gd php5-imagick imagemagick

2. APC tuning

/etc/php5/conf.d/apc.ini
extension=apc.so
apc.shm_size = 64
apc.rfc1867 = on

3. PHP és Nginx elindítása

service php5-fpm start && service nginx start

4. Virtuális hostok

A virtuális hostok beállítása, kezelése hasonló az Apache -hoz, az /etc/nginx/ könyvtárban van egy sites-available  és egy sites-enabled, itt kell létrehozni a virtuális hostok beállításait tartalmazó fileokat, az alábbihoz hasonló tartalommal:

server {
        listen 80;
        server_name bolcs.hu www.bolcs.hu;

        location / {
                root   /var/www/bolcs;
                index index.php;

        }

        # serve static files directly
        location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$ {
            access_log        off;
            expires           30d;
        }

        location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME /var/www/bolcs$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_script_name;
                include /etc/nginx/fastcgi_params;
        }
}

Yahoo! bukta

Adott egy egyszerűnek tűnő feladat. Költöztessünk egy email postafiókot egy másik szolgáltatóhoz, például Gmailre.

Nosza kezdjük is azzal hogy beállítunk egy forwardot a régi postafiókon, hogy minden bejövő levél ezután az új címen landoljon. Tudtad azt, hogyha a Yahoonál levelezel, ilyet nem tehetsz meg ingyen? Csak a fizetős vendégeknek jár ez a haladó szolgáltatás…

Yahoo fail

Yahoo fail

Mint ahogy a mellékelt ábra is mutatja, nem csak forwardolni nem lehet a Yahooban. Nem ad hozzáférést a leveleidhez semmilyen formában a webesen kívül, vagyis nem készíthetsz biztonsági másolatot, nem használhatsz asztali levelező kliens alkalmazást, vagy mobiltelefont a leveleid letöltésére és természetesen nem költöztetheted el a leveleidet máshová, csak ha upgradelsz $20 -ért a Plus szolgáltatásra.

Vagyis ha sok leveled van, kényszerítve vagy hogy fizess ha el szeretnél költözni.

Egyedül a címtár költöztetése oldható meg csv export által, pih…

Elképesztő.

Ustream FTW!

Majdnem egy évig a Ustream magyar csapatát erősíthettem!

Ustream logo

Sok sok új kolléga szakmai interview -ján vettem részt és a kedvenc részem mindig az volt (és általában akkor meséltem róla, ha ígéretes volt a jelölt), hogy miért is jó a Ustreamnél dolgozni.

A Ustreamnél dolgozni olyan, mintha kiszakadnál a magyar szürke realitásból és a szilícium völgy egy optimalizált változatába csöppennél. Egész mások a szabályok mint egy magyar vállalkozásnál vagy akár egy multinál. A Ustreamnél nincsenek korlátok, hihetetlen ütemben növekszik (1 év alatt 4x -sére nőtt a létszám) és ha úgy érzed valamilyen ügy iránt elkötelezett vagy és profi vagy benne, akkor az az ügy könnyen a tiéd lehet és te viheted be a célba. Tovább »

Kanban és Scrum

A Scrum bevezetése során sokszor felmerült bennem az az érzés hogy kell-e mindez a kötöttség amivel a Scrum jár. Nem lehetne valamit egyszerűsíteni? (Ma már úgy gondolom hogy igen, agilis tapasztalatok nélkül igenis szükség van kötöttségekre. Biztonságot nyújtanak. Ezúton is köszönöm a szigort Zsoltnak aki a trénerünk és coachunk volt a bevezetés során.) Tovább »

NFO fileok quick view -val

Az nfo kiterjesztés közismerten sima szöveges filet takar, amibe általában némi infót rejtenek az alternatív módokon disztributáló média és alkalmazásterjesztők.

Mac alatt a Quick View egy csodálatos találmány. Bármelyik állományon szóközt nyomunk, és már látjuk (halljuk, érzékeljük) mit is rejt a file. Gyors és egyszerű mint Leon a profi.

Vannak kiterjesztések, file típusok, amik bizony nem kukkanthatóak meg ily módon, hacsak cselhez nem folyamodunk. Amikor egy appot az Application mappába dobunk, az oprendszer megvizsgálja a benne lévő Contents/Info.plist filet. Ez a config file kihatással lehet más alkalmazások működésére és pl. egy alkalmazás így megmondhatja magáról hogy bizonyos kiterjesztések esetén ő bizony segíteni tud a Leopárdnak QuickView -olni. Némi ügyességgel bármelyik kiterjesztést bármelyik alkalmazáshoz társíthatjuk (ha ez örömet vagy hasznot hoz).

NFO társításának esete a TextEdit appal:

  1. Nyissunk egy Terminal -t
  2. Írjuk be hogy: cd /Applications/TextEdit.app/Contents
  3. Nyissuk meg szerkesztésre az Info.plist -et: sudo open -a TextEdit Info.plist
  4. Görögjünk a file végére és a </dict></plist> elé másoljuk be a következő sorokat:
<key>UTExportedTypeDeclarations</key>
	  <array>
	    <dict>
	      <key>UTTypeConformsTo</key>
	      <array>
	        <string>public.text</string>
	        <string>public.plain-text</string>
	      </array>
	      <key>UTTypeDescription</key>
	      <string>NFO information file</string>
	      <key>UTTypeIdentifier</key>
	      <string>com.macromates.textmate</string>
	      <key>UTTypeTagSpecification</key>
	      <dict>
	        <key>com.apple.ostype</key>
	        <string>TEXT</string>
	        <key>public.filename-extension</key>
	        <array>
	          <string>nfo</string>
	        </array>
	      </dict>
	    </dict>
	  </array>

5. Mentsük el és zárjuk be a filet
6. A Terminálba írjuk be a következőt: sudo touch /Applications/TextEdit.app

Ettől kezdve ha szóközt nyomunk egy a nfo file felett, csiribááá, meg fog jelenni a tartalma. A megoldásnak van sajnos egy hátulütője. Ha az illető alkalmazás valamikor frissül majd, el fog veszni ez a beállítás, ezért jól jegyezd meg ennek az oldalnak a címét! :)