aFridge for Android OS

Во последно време, или поточно последните резултати на светските трендови во полето на мобилната телефонија, односно, поконкретно smart телефоните, Андроид оперативниот систем на Google Inc. завзеде најголем дел од пазарот со околу 33% учество на светско ниво. Успехот на ова платформа, најмногу се должи на нејзината отвореност , растечката заедница и пред се на поволните услови кои ги нуди на самите програмери. Па затоа и aFridge е апликација наменета за Андроид корисниците. Апликацијата всушност претставува виртуелен фрижидер кој што го решава проблемот на магацинско работење, но на сосема различно ниво. Апликацијата е предвидена да ви го олесни секојдневието, превземајќи дел од вашите грижи и помагајќи ви да најоптимално ги искористите производите што ги чувате во вашиот фрижидер.

Како што може да забележите на сликата, корисникот е среќен со неговиот фрижидер, но неможе да спакува и носи со себе секаде, но, со помош на aFridge и тоа задоволство, барем на некој начин, ќе му биде исполнето.

Апликацијата е објавена на Android Market и воедно го имам објавено и кодот на Github под GNU General Public License v3 лиценца за слободно споделување, со што апликацијата станува слободен софтвер.

aFridge има неколку главни функционалности и карактеристики, меѓу кои се, на пример, проверка и предупредување за приближување на датумот на истек на рокот на траење на производот, чување на историја на промени и користење на фрижидерот, дел за запишување на белешки, grid и list поглед на присутните производи и слично. Апликацијата може директно да ја инсталирате, скенирајќи го следниот QR код со вашиот омилен читач, кој што ќе ве пренасочи директно кон страната на апликацијата на Android Market. Се надевам дека апликацијата ќе ја најдете за корисна и за сите забелешки, критики или пофалби, пишете во коментарите.

Advertisements

Инсталирање, конфигурирање и тестирање на Kannel SMS Gateway

Годинава земав учество во ЕдноЛето – македонска верзија од Google Summer of Code, организирано од Слободен Софтвер Македонија. Се пријавив и бев примен на проектот насловен како: Систем за известување и управување преку СМС пораки. Како главна алатка што ќе се користи во проектот, ви го претставувам Kannel. Kannel претставува компактен и моќен open source, WAP и SMS gateway развиен за GNU/Linux оперативните системи, широко употребуван насекаде во светот.

За да го инсталирате, најпрвин побарајте го во репозиториумите на вашиот оперативен систем, или пак директно симнете го од нивниот официјален сајт како стабилна верзија, или како дневен snapshot од нивтниот SVN репозиториум. Бидејќи моментално користам Fedora 15, може да ја инсталирам алатката на два начина. Првиот и полесен начин е алатката да ја инсталирам директно од главниот репозиториум на Fedora, со едноставно повикување на командата:

$ sudo yum install kannel.i686

со ова, алатката е инсталирана и готова за користење, со конфигурацискиот фајл поставен на локација /etc/kannel.conf кој што подоцна може да го едитираме за тест примерот. Од друга страна, доколку ја немате во репозиториум, алатката може и да ја искомпајлирате од код, кој што може да го симнете од следната локација: http://kannel.org/download/kannel-snapshot.tar.gz. Значи отворете го омилениот конзолен емулатор, дојдете до посакуваната патека кај што сакате да ја спуштите архивата и пишете:

$ wget http://kannel.org/download/kannel-snapshot.tar.gz
$ tar xvfz kannel-snapshot.tar.gz

за да ја симнете и отпакувате алатката во kannel-snapshot фолдер. Влезете во фолдерот и претпоставувајќи дека ги имате инсталирано развојните алатки и библиотеки, пишете:

$ ./configure
$ make

за да ја искомпајлирате алатката. Доколку во процесот ви се јави грешка, најверојатно немате некоја од потребните алатки и библиотеки и препорачувам да ја прочитате документацијата на Kannel за специфични побарувања – http://kannel.org/overview.shtml#req.

Во Yum пакет менаџерот на Fedora постои опција за групна инсталација на алатки според име на група, така да, за да ги инсталирате најчесто бараните алатки за компајлирање, односно развојни алатки (make, gcc и слично), пишете во конзола:

$ sudo yum groupinstall “Development Tools”

Откако ќе ги инсталирате развојните алатки, потребно е додатно да ја инсталирате и libxml2 библиотеката:

$ sudo yum install libxml2.i686 libxml2-devel.i686

Со ова би требало да ги одбегнете грешките и успешно да може да ја искомпајлирате алатката. Доколку сеуште компајлирањето ви јавува грешка, пишете коментар и испратете ми го текстот со грешката, за подетално да го разгледаме проблемот.

Откако успешно ја имаме инсталирано алатката, на ред е нејзино конфигурирање и тестирање. Default конфигурацијата може да ја најдете во /etc/kannel.conf, но ние ќе се послужиме со подетална конфигурација за SMS gateway. Ако ја инсталиравте алатката од репозиториум, побарајте го тест конфигурацискиот фајл во /usr/doc/kannel-VERSION/examples или /usr/share/doc/kannel-VERSION/examples насловен како smskannel.conf, или пак доколку го компајлиравте рачно, побарајте во ../kannel-snapshot/gw/smskannel.conf. Тука може да ги видиме дефинирано основните потребни групи за тестирање на SMS gateway. Дефиниран е fake sms centar на порта 20000 (или 10000) како симулатор за испраќање на смс пораки, како и корисник (group = sendsms-user) кој што може да испраќа смс пораки, со тест корисничко име и лозинка. Дефиниран е и default смс сервис кој што се справува со добиените смс пораки доколку нема дефинирано друг соодветен смс сервис.

Ние за тестирање ќе напишеме наједноставен смс сервис кој што ќе ни испраќа известување за секоја примена порака. На крај на конфигурацискиот фајл додадете ги следниве три линии:

group = sms-service
keyword = test
exec = notify-send “A message is received – %a”

Првата линија покажува дека тука почнува дефиниција на нов смс сервис, втората линија дефинира според кој филтер ќе биде препознаена пораката, односно keyword претставува првиот збор од пораката, а во третиот ред е дефинирана акција што треба да се изврши, при што %a претставува алиас за целата содржина на пораката url кодирана.

За подетално да се запознаете со синтаксата и начинот на конфигурирање, како и можностите за филтрирање – одбивање на барање од одредени хостови, привилегирани корисници и слично, прочитајте ја документацијата на kannel која што се наоѓа на http://kannel.org/download/kannel-userguide-snapshot/userguide.html. Таму на пример во табела 6-9 се дадени сите параметри, односно алиаси како што се %a – целата содржина на смс поракта и %k – првиот збор од пораката, а во табела 6-8 се дадени сите применливи и ограничувања што може да се додадат во еден смс сервис. Треба да се напомене дека штом ќе се добие една смс порака, со неа се справува само првиот сервис кој што ќе ги исполнува сите параметри (испраќач, клучен збор и слично). Сервисите се проверуваат линеарно почнувајќи од првиот дефиниран.

Откако го дефиниравме сервисот, сега ни преостанува само да го тестираме. Првин треба да стартуваме bearerbox, за да би можеле да стартуваме smsbox. Ако го инсталиравте пакетот рачно, стартувајте ги сервисите (по овој редослед):

$ ./kannel-snapshot/gw/bearerbox -v 1 kannel-snapshot/gw/smskannel.conf
$ ./kannel-snapshot/gw/smsbox -v 1 kannel-snapshot/gw/smskannel.conf

притоа со -v дефинираме ниво на verbosity, кај што 0 прикажува debug информации, а 1 ги прикажува грешките (конфигурацискиот фајл и алатките се повикуваат според патека).

Ако го инсталиравте пакетот од репозиториум, постапката е иста, со што алатките се повикуваат од било која локација, а конфигурацискиот фајл се повикува според патека.

Со smsbox-от стартуван, останува само да испратиме лажна тест порака за нашиот дефиниран сервис, со помош на fakesmsc алатката. И пак, доколку го инсталиравте пакетот рачно, алатката ја повикувате според локација, инаку, од било каде.

$ ./kannel-snapshot/test/fakesmsc -m 1 -H localhost -r 20000 “123 456 text test message”

Во повикот на fakesmsc дефинираме број на пораки што треба да се испратат со -m, дефинираме хост на кој што сакаме да ја пратиме пораката со -H и дефинираме порта на која што работи сервисот со -r, потоа во наводници е пораката што ја испраќаме во облик “испраќач примач text тело на пораката”. Испраќачот и примачот во нашиот случај не се битни, text е филтерот според кој се испраќа текстот на пораката (може, на пример, да биде и url кодирана пораката и наместо text треба да стои udh, исто така објаснето во документацијата) и во телото на пораката го пишуваме првиот збор да се совпаѓа со keyword-от, а останатиот дел од пораката, моментално не ни е важен. Откако ќе ја испратиме пораката, во прозорецот добиваме повратна информација:

[8303] [0] INFO: Got message 1: <13013 123 text <Empty reply from service provider>>

а во прозорецот кај што е стартуван smsbox-от добиваме информација:

[5202] [4] INFO: Starting to service <test message> from <123> to <456>

и во едно се појавува нотификација, односно известување со содржина: “A message is received – test+message” каде што примената порака ја добиваме како url кодирана, со што добиваме потврда за успешно испратена/примена порака.

Толку за инсталација, конфигурирање и почетно тестирање на Kannel SMS gateway-от. Во иднина, повеќе за можностите на сервисот и идеи за сервиси и начини на управување на системи преку обични смс пораки.