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ájus 20., hétfő

Google Reader helyett: RSS olvasók tesztje

Nem rég az a szomorú hír fogadott a napi RSS olvasáskor, amikor beléptem a Google Readerbe, hogy július 1-én lekapcsolják a szolgáltatást. Nem nagyon örültem neki, mert a Google Readert naponta használom. A legnépszerűbb RSS olvasó leállására az eddigi konkurens alkalmazások egyből aktivizálták magukat, hogy minél több új felhasználót gyűjtsenek be.

Sokan próbálják lemásolni a Google Readert, azonban a legtöbben saját megoldásaikat akarják eladni, és sokszor nem sikerül olyan jól, mint az eredeti. Számtalan pont van, ahol elbukhat egy alkalmazás, számomra a legfontosabb tulajdonságok a következők:

  1. Gyorsaság: a legfontosabb, hogy gyorsan tudjam elolvasni a híreket, ne kelljen várni folyamatosan, míg az oldal betölti a tartalmakat.
  2. Felhasználóbarátság: ennek elég nehéz megfelelni, hogy ha gyorsan akarom átfutni a híreket és csak átpörgetem őket azt is megtehessem, de ha el akarnám olvasni őket, azt is megtehessem könnyedén.
  3. Több platform: minél több platformon legyen lehetőség olvasni a híreket, az Android-os Google Reader-nél jobb program nem igazán van.

Ezen szempontok alapján lássunk tehát néhány klónt:

The Old Reader

Ez az egyik legjobban sikerült másolat. Már a nevéből is látszik, hogy készítői nem törekedtek arra, hogy valami újjal álljanak elő, egyszerűen pótolni akarták a Google Readert. Ez elég jól sikerült, a funkciók és a kinézet szinte teljesen megegyezik az eredeti változatban elérhetővel. A főoldal áttekintő képernyője, a trendek rész, az olvasó felület lista és teljes nézete, csillagozott (Liked) elemek szinte teljesen ugyanolyanok, mint a Google Readerben. A kipróbált olvasók közül magasan ez a legmegbízhatóbb és leggyorsabb, használhatóságban szinte megegyezik a Google Readerrel, azonban mobilos alkalmazás sajnos még nem érhető el hozzá (a készítők viszont terveznek ilyet).

Netvibes

A Netvibes készítői megpróbáltak valami újat is alkotni, mint például a Widgetek nézet, a rengeteg effektnek köszönhetően azonban használhatatlanul lassú az oldal. Létezik egy Reader nézet is, ami egy alapos átkonfigurálás után egészen használható formába hozható. Mindezek ellenére a Netvibes nem nagyon jött be nekem, néha kicsit belassult, és mobilos app sem érhető el hozzá (az oldalnak viszont létezik mobilra optimalizált változata).

Feedly

A Feedly asztali változata kiegészítővel használható (Firefox, Chrome böngészőkhöz találhatunk), natív mobilos app elérhető hozzá Android-hoz és iOS-hez is. A Feedly-ben próbálták újragondolni a Google Reader felületét, újító ötletekkel álltak elő. Az oldal dizájnja letisztult és szépnek mondható, a gyorsasággal sincs olyan nagy gond, viszont a tartalom olvasására szolgáló nézetek mintha nem lennének tökéletesek. Firefox-ban olvasva a Full Article nézet, ami a legjobban hasonlít az előd részletes megjelenítési nézetéhez, a tartalom viszont összezsugorítva a képernyő felét foglalja el a többi pedig puszta placeholder, mintha nem is olvasásra találták volna ki az alkalmazást. Valamilyen hasonló nézet mobilos appnál pedig el sem érhető. A másik ami megnehezíti a használatot, hogy a Feedly megpróbálja kitalálni, hogy az olvasónak mi a fontos és azokat a cikkeket mutatja először, van amikor többször is egy népszerű cikk áll a lista elején, más cikkek meg csak később válnak olvashatóvá.

Létezik még néhány egyéb olvasó is, amelyeket kipróbálva úgy tapasztaltam, hogy vagy valami teljesen új dologgal próbálkoznak, vagy nem túl használhatóak, ezekbe a kategóriákba tartozik a Pulse, vagy a NewsBlur.

Ha elszántuk magunkat, hogy átköltözünk Google Reader-ből egy másik olvasóba, és szeretnénk átvinni a követett feedjeinket, akkor először importáljuk ki őket a Google Takeout-ból, aztán az archívumból kicsomagolva importálhatjuk az új olvasóba a subscriptions.xml fájllal.

Asztali gépen használva nekem gyorsaság és használhatóság szempontjából a The Old Reader tetszett, gyakorlatilag már át is tértem rá. Néhány tippet még leírnék használatához:

Tippek a The Old Reader olvasóhoz

  • ’?’ vagy ‘h’ gomb megnyomásával megnézhetjük, hogy milyen gyorsgombokat használhatunk az alkalmazásban. Sokkal gyorsabb velük az oldal használata.

  • Ha fel akarunk iratkozni egy RSS feedre, a Firefox segítségével a fenti képen látható módon, akkor a következőképpen adhatjuk hozzá a The Old Reader-t a feed-ek kezelőjéhez:
  1. Írjuk be a Firefox címsorába: about:config!
  2. Írjuk be a Keresés-hez: browser.contentHandlers.types és nézzük meg a legnagyobb számú bejegyzést!
  3. Jobb klikk \(\rightarrow\) Új \(\rightarrow\) Karakterlánc, és hozzunk létre egy bejegyzést az eddigi legnagyobb számnál 1-el nagyobb értékkel, pl:
browser.contentHandlers.types.8.title
// értéknek: The Old Reader
  1. Az előző ponthoz hasonlóan hozzuk létre még a következő bejegyzéseket:
browser.contentHandlers.types.8.type
// értéknek: application/vnd.mozilla.maybe.feed
browser.contentHandlers.types.8.uri
// értéknek: http://theoldreader.com/feeds/subscribe?url=%s
  1. A Firefox újraindítása után, már ki is választhatjuk, hogy a The Old Reader-re akarunk feliratkozni
  • A Conky-hoz használható olvasatlan feedszám kijelző szkript a következő cikkemben lesz olvasható :)

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!