SMS gateway – integruojam sms į interneto puslapį

No Comments

Kaip visad kai susiduriu su kuo nors įdomiu – pasidalinu patirtim. Šį kart susidūriau su sms integravimu į interneto puslapį. Mano atveju integravimas yra asmeniniem tikslam, be trumpojo numerio, be papildomos įrangos, tiesiog su tuo kas yra po ranka ir kaip įmanoma pigiau ir paprasčiau:)

 

Tikslas: parašyti sms nurodytam numeriui, nurodytu laiku su „on fly“ sugeneruotu turiniu(praktikoj tai ryte sms’u atsiųsti dienos orų prognozę), viskas turi veikt autonomiškai.

Ko reikės:

  • telefono su android OS
  • vietos internete(host’o)

SMS gateway

Telefone įdiegiam programą sms gateway yra ir milijonas kitų programų atliekančių tą patį, bet siūlau tai ką išbandžiau.
Sukonfigūruojam:

Pažymim reikiamus elementus

Sukonfigūruojam POP3 serverį

HTTP -> SMS

Telefone viskas sukonfigūruota, jis lauks el. laiško kurio temoj bus nurodytas telefono numeris, o pačiam laiške sms turinys. Tokį laišką jam ir pasiunčiam. Aš rašiau su php, bet čia jau skonio reikalas:D

mail("akmc@gmail.com","+370609xxxxx","Labas, kaip šeima, vaikai?");

„sms gateway“ kas 10 minučių tikrins el. paštą ir radus naują laišką, nusiųs sms numeriui +370609xxxxx su tekstu „Labas, kaip šeima, vaikai?“. Viskas paprasta ir aišku. Gautas el. laiškas yra ištrinamas.

Praktikoj tai scenarijų nurodytu laiku ir nurodytom dienom įvykdo „cron jobs“.

Realus scenarijus

SMS -> HTTP

SMS gavom, dabar reikia atsakyt.
„SMS gateway“ programoj nustatom http dalį. Gavus sms, programa nueis nurodytu adresu ir GET metodu perduos duomenis.


Apdorojam gautus duomenis:

<?php
$device=$_GET["device"];
$phone=$_GET["phone"];
$center=$_GET["smscenter"];
$text=$_GET["text"];
$stream=fopen("sms.txt","a+");
fwrite($stream,"Įrenginys:$device\nNumeris:$phone\nSms centras:$center\nTekstas:$text\n");
fclose($stream);
?>

Komentarų manau nereik, čia viskas aišku:)
Gauti sms neištrinami ir neperimami programos, tiesiog programa išmeta savo pranešimą ir apdoroja duomenis.

Laikas

No Comments

„Laikas visada gerbs ir palaikys tai, kas tvirta, bet pavers dulkėmis tai, kas netvirta.“ Anatolis Fransas

Aparatinės įrangos laikrodis ir sistemos laikrodis

Kompiuteris turi du laikrodžius: „aparatinės įrangos laikrodį“  ir „sistemos/programinės įrangos laikrodį“.
Aparatinės įrangos laikrodis (dar žinomas kaip „Real Time Clock (RTC)“ ar „CMOS“ laikrodis) saugo: Metų, mėnesio, valandos, minutės ir sekundės reikšmę. Jis neturi galimybės saugoti laiko standarto („localtime“ ar „UTC“) ar DST(Daylight Saving Time/Vasaros laikas) nustatymo.
Sistemos laikrodis (dar žinomas kaip „programinės įrangos laikrodis“) saugo įrašą apie: laiką, laiko zoną bei DST(jei taikoma). Unix ar POSIX laikas, tai laikas skaičiuojamas nuo 1970, sausio 1 vidurnakčio(UTC pradžia) išreikštas sekundėmis. Pradinė sistemos laikrodžio reikšmė paskaičiuojama pagal aparatinės įrangos laikrodį, remiantis nustatymais iš failo /etc/adjtime. Užsikrovus sistemai, sistemos laikrodis veikia nepriklausomai nuo aparatinės įrangos laikrodžio. Linux branduolys seka laiką skaičiuodamas laikmačio pertraukimus.

Kiek dabar valandų?

Norėdami sužinoti dabartinį sistemos laikrodžio laiką („local time“ ir „UTC“ formatais) galite įvykdyti komandą:

$ timedatectl status

Local time: An 2014-03-04 18:20:36 EET
Universal time: An 2014-03-04 16:20:36 UTC
RTC time: An 2014-03-04 16:20:36
Timezone: Europe/Vilnius (EET, +0200)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: no
Last DST change: DST ended at
Sk 2013-10-27 03:59:59 EEST
Sk 2013-10-27 03:00:00 EET
Next DST change: DST begins (the clock jumps one hour forward) at
Sk 2014-03-30 02:59:59 EET
Sk 2014-03-30 04:00:00 EEST

Kovo 30 persuksime laikrodį valanda į priekį:D

Laiko nustatymas

Nustatyti sistemos laikrodį galite su komanda:

# timedatectl set-time "2014-03-04 18:22:16"

RTC laikrodis

Daugumai operacinių sistemų įprasta elgsena yra:

  • Sistemos laikrodis nustatomas, įkeliant sistemą, pagal aparatinės įrangos laikrodį
  • Tikslus sistemos laikas palaikomas su NTP tarnyba
  • Išjungiant nustatyti aparatinės įrangos laikrodį pagal sistemos laikrodžio parodymus

Laiko standartas

Yra du laiko standartai: „localtime“ ir „Coordinated Universal Time (UTC)“. „Localtime“ standartas yra priklausomas nuo laiko zonos, tuo tarpu UTC yra globalus laiko standartas ir nepriklausomas nuo laiko zonos nustatymo. Nors iš esmės visiškai kitoks, bet UTC dar žinomas kaip GMT (Greenwich Mean Time).
Aparatinės įrangos laikrodžio(CMOS laikrodis, laikas kuris rodomas BIOS) naudojamas standartas yra nustatomas operacinės sistemos. Pagal nutylėjimą, Windows naudoja localtime, Mac OS naudoja UTC ir UNIX tipo operacinės sistemos įvairiai. OS naudojanti UTC standartą, CMOS laiką laikys UTC laiku(GMT, Greenwich laiku) ir įkeliant sistemą, sistemos laikrodį nustatys pagal jūsų laiko zoną.
Naudojant Linux, būtų protinga aparatinės įrangos laikrodį nustatyti į UTC, taip visos OS sugebės jį atpažinti. Naudojant UTC, laikrodis bus automatiškai persuktas pagal DST. Naudojant „localtime“ standartą, sistemos laikrodis nebus persuktas įvedus/atšaukus vasaros laiką, darant prielaidą jog tai padarys kita OS.
Aparatinės įrangos laikrodžio standartą galite nustatyti ir komandinėje eilutėje. Taipogi galima pažiūrėti koks standartas nustatytas jūsų distributyve:

$ timedatectl status | grep local

Aparatinės įrangos laikrodis gali būti užklaustas ir nustatytas naudojant „timedatectl“ komandą. Norėdami pakeisti aparatinės įrangos laikrodžio standartą į „localtime“:

# timedatectl set-local-rtc true

Norėdami sugrąžinti UTC:

# timedatectl set-local-rtc false

Turėkite omeny jog nustačius laikrodį „localtime“ standartu bus problemų su vasaros laiku. Jei vasaros laikas įvedamas/atšaukiamas kai jūsų kompiuteris išjungtas, kitą kart įjungus kompiuterį bus rodomas klaidingas laikas. Naujausi branduoliai nustato sistemos laikrodį iš RTC tiesiogiai, įkraunant sistemą, daroma prielaida jog laikrodis nustatytas UTC. Tai reiškia jog jei RTC yra nustatytas vietiniu laiku pirmą kartą sistema nustatys klaidingą laiką ir kiekvieną kart pataisys tą klaidingą laiką. Tai yra daugelio keistų klaidų priežastis(retai laikas einantis atgal yra geras dalykas).
Bus sugeneruotas /etc/adjtime daugiau nieko konfigūruoti nereiks.
Paleidžiant branduolį, RTC tvarkyklės įkėlimo metu, sistemos laikrodis gali būti nustatytas pagal aparatinės įrangos laikrodį. Ar tai įvyks ar ne priklauso nuo aparatinės įrangos, branduolio versijos ir branduolio kompiliavimo parinkčių. Jei tai įvyksta, šioje įkėlimo stadijoje aparatinės įrangos laikrodis laikomas UTC ir /sys/class/rtc/rtcN/hctosys (N=0,1,2,..) reikšmė bus nustatyta „1“. Vėliau, sistemos laikrodį nustatant dar kartą pagal aparatinės įrangos laikrodžio parodymus, systemd remsis reikšmėmis iš /etc/adjtime. Nustačius aparatinės įrangos laikrodį naudoti „localtime“ gali kilti problemų įkeliant sistemą,  pvz. sistemos laikrodis eina atgal.

UTC ir Windows

Viena priežastis kodėl naudotojai RTC nustato „localtime“ tai kelių OS naudojimas su Windows(Windows naudoja localtime). Windows sugeba susidoroti su RTC nustatytu į UTC, tiesiog reikia pritaikyti paprastą registro pataisymą(žemiau). Rekomenduojama sukonfigūruoti Windows naudoti UTC, tai bus geriau nei kai Linux naudos „localtime“. Jei priversite Windows naudoti UTC, nepamirškite išjungti „Internet Time Update“, kitu atveju Windows sugadins aparatinės įrangos laikrodžio parodymus. RTC sinchronizacijai naudokite NTP.
Naudojant „regedit“ pridėkite DWORD reikšmę su šešioliktaine reikšme 1:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal
Taipogi galite sukurti *.reg failą (ant darbastalio) su tokiu turiniu:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001

Ir dukart spustelėkite ant to failo ir ta reikšmė bus importuota į registrą.
Windows XP ir Windows Vista SP1 gali naudoti UTC laiko standartą. Tačiau yra klaida grįžtant iš sustabdymo/užmigdymo, laikrodis grąžinamas į „localtime“. Šioms OS rekomenduojama naudoti „localtime“.
Jei Windows prašys atnaujinti laikrodį dėl vasaros laiko įvedimo/atšaukimo, leiskite. Laikrodis bus paliktas UTC standarte, bus pataisytas tik rodomas laikas.
Po šios reikšmės pakeitimo gali tekti pataisyti aparatinės įrangos ir sistemos laikrodžius.
Jei kilo problemų su laiko nuokrypiu, pabandykite iš naujo įdiegti „tzdata“ ir nustatyti savo laiko juostą:

# timedatectl set-timezone Europe/Vilnius

Logiška būtų Windows sistemoje išjungti laiko sinchronizavimą, kitu atveju bus sugadinti aparatinės įrangos laikrodžio parodymai.

Laiko zona

Norėdami sužinoti esamą laiko zoną įvykdykite:

$ timedatectl status

Norėdami pažiūrėti prieinamas laiko zonas įvykdykite:

$ timedatectl list-timezones

Norėdami pakeisti laiko zoną įvykdykite:

# timedatectl set-timezone Zone/SubZone

Pavyzdžiui:

# timedatectl set-timezone Europe/Vilnius

Bus sukurta /etc/localtime simbolinė nuoroda į „zoneinfo“ aplanke /usr/share/zoneinfo/. Jei sugalvosite nuorodą sukurti rankiniu būdu, turėkite omeny jog nuoroda turi būti reliatyvi, ne absoliuti taip kaip nurodyta archlinux(7).
Norėdami sužinoti daugiau peržiūrėkite man 1 timedatectl, man 5 localtime ir man 7 archlinux.

Laiko sinchronizavimas naudojant NTP

Parašysiu tik esmę. Naudoju NTP su numatytąja konfigūracija ir vargo nematau.
Paleisti kaip tarnybą
Paleisti NTP tarnybą galima su komanda:

# ntpd

Tačiau ji bus vykdoma kaip „root“ naudotojo procesas. Visada reiktų paleisti tarnybą nurodant naudotoją:

# ntpd -u ntp:ntp

Patikrinimas ar tarnyba tinkamai veikia
Pamatyti sukonfigūruotų serverių sąrašą galima su komanda:

$ ntpq -p

„Delay“, „offset“ ir „jitter“ stulpeliai turėtų būti ne nuliai.  Serveriai su kuriais „ntpd“ sinchronizuoja laiką pažymėti žvaigždute. Gali tekti palaukti kelias minutes kol „ntpd“ pasirinks ir sinchronizuos laiką su serveriu, pabandykite pažiūrėti po 17minučių (1024 sekundžių).

Be tarnybos

Sistemos laikrodis gali būti sinchronizuojamas ir be tarnybos. Tačiau toks variantas netiks kompiuteriams kurie be perkrovimo veikia kelias dienas ar ilgiau. Norėdami sinchronizuoti sistemos laikrodį nepaleidžiant ntpd fone, galite įvykdyti komandą:

# ntpd -q

Žymė „-q“ pasako jog ntpd tarnyba nustatytų laiką vieną kartą ir užsidarytų, o ne pereitų į foninį režimą. Jei operacija bus nesėkminga, jūsų laikrodis taip ir liks nesinchronizuotas.
Sistemos laikas nebus sinchronizuotas jei sistemos ir ntp serverio laikas skiriasi daugiau nei nustatyta riba. Tačiau galima panaudoti parinktį „-g“ ir nepaisyti tos ribos, pvz. jei laikas nustatomas pirmą kartą arba aparatinės įrangos laikrodis rodo nesąmones.

Automatinis paleidimas

Systemd tarnyba

„Ntpd“ galima paleisti kartu su kompiuteriu naudojant „systemd“.
Tarnybos paleidimas kartu su kompiuteriu:
„Ntp“ pakete yra failas ntpd.service. Įjunkite tarnybą su systemctl:

# systemctl enable ntpd

Taipogi tą patį galima padaryti su komanda:

# timedatectl set-ntp 1

Šaltinis: tai yra archwiki vertimas. Viskas kas čia parašyta, rašyta žvelgiant iš „archlinux“ perspektyvos.

Dropbox linux'e

2 Comments

Apie Dropbox

Dropbox – nemokama tarnyba kuri suteikia galimybę be jokio vargo įkelti ir dalintis nuotraukomis, dokumentais ir vaizdo įrašais su visu pasauliu. Dropbox 2007-ais įkūrė Drew Houston ir Arash Ferdowsi, du MIT studentai kuriems pabodo dalintis failais el. paštu.

Šiandien, daugiau nei 200 milijonų žmonių visame pasaulyje visada turi reikalingus failus po ranka ir gali jais be jokio vargo pasidalinti su kitais.

Nerašysiu kodėl „dropbox“, o ne kita dalinimosi tarnyba; nerašysiu kodėl išvis kažkam gali prireikt tokio dalyko, ne tame esmė:)  Viskas ką parašysiu bus iš „archlinux“ perspektyvos, skirtingose distributyvuose gali kažkas skirtis.

Esmė: jei reikia dalintis failais tarp skirtingų įrenginių, pvz. tarp namų PC(pvz. linux), darbo kompiuterio(pvz. windows) ir telefono(pvz. android) tai dropbox būtent tai ko reikia. Viena vieta internete kur tiek prisijungus, tiek neprisijungus galima pasiekti reikalingus failus. Nebūtina siųsti el. paštu.

 

Diegimas

Dropbox yra AUR’e. Paimam ir įdiegiam. Ir viskas, paleidžiam „dropboxd“:) Atsidarys dropbox vedlys, ten viską nustatom ir viskas. Failai bus sinchronizuojami tarp jūsų dropbox paskyros ir kompiuterio aplanko(~/Dropbox) . Sinchronizuojama su serveriu Lietuvoje, mano atveju tai yra didelis skirtumas ar serveris Lietuvoje ar užsienyje. Dropbox automatiškai pasileis kartu su kompiuteriu.

Integracija

Komandinei eilutei, „nautilus“, „nemo“, „thunar“ ir „kde“ tai AUR’e yra integravimo paketai. Deja skirto Pcmanfm nėra:)

Post Install

Paspaudus ant dropbox piktogramos, atsidaro „nautilus“. Aš nenaudoju jo, ten matyt noriu „pcmanfm“.

sudo mv /usr/bin/nautilus /usr/bin/nautilus_back
sudo ln /usr/bin/pcmanfm /usr/bin/nautilus

Epilogas

Iš esmės tai nieko neparašiau, viską galim buvo parašyt vienu sakiniu „dropbox veikia ir ant linux“. Betkokiu atveju man honorarą moka už straipsnių skaičių, o ne jų turinį:D

Išsamiau apie DropBox https://wiki.archlinux.org/index.php/Dropbox

[Gimp] Sfera

No Comments

Kalėdos, eglė, šventės, etc. ta proga prireikė išlenkt foto ant kalėdinio žaisliuko(sferos) galvojau jog viskas paprasta „gimp->filter->sphere“, bet pasirodo ne viskas taip paprasta. Gimp sferos filtras veikia kažkaip ne taip kaip tikimasi iš jo, tai teko paskaitinėt google ir išsiaiškint kas ir kaip, dabar pasidalinsiu patirtim 🙂

Kadangi mikrofono visdar neturiu(Liudai, skaitai? Puslapis surenka milijonus pajamų, o autoriai rašo su senom klaviatūrom, neturi galimybės net padoraus video padaryt… vis dėlto kalėdos artėja 😀 )

P. S. video įrašyta su windows, tiesiog su windows video gražiau įsirašo, ne taip stringa(kad ir kaip ten bebūtų kompas nebenaujas)

Paveiksliuko išlenkimas ant sferos

Kitas pavyzdys

Galiausiai

akmc

Aš negaliu parodyt „step-by-step“ aš galiu parodyt tik į kurią pusę eit… Viską reik imt ir bandyt, kiekvienu atveju reikia kažko kito, reik daryt kažkaip kitaip. Interneto pavyzdžiuose tai mačiau žmonės išplečia paveikslėlį 1,5-3 kartus, man arčiau širdies uždėt paveiksliuką ant 3x išplėsto fono, na vienu žodžiu kas kaip moka tas taip šoka 🙂

Paveiksliukai video buvo tik principo parodymui, įdėjus truputuką darbo į tą pavyzdinį paveiksliuką gaunam maždaug:

kaledos

P.S.  Šiais metais nesiruošiu daugiau rašyt, todėl Su Kalėdom ir naujais metais!

Android SDK diegimas/Pagrindiniai SDK įrankiai

1 Comment

Padėjau savo seną nokia į stalčių, įsigijau telefoną su Android. Jau po kelių dienų naudojimo nebeveikė „google store“, padariau išvadą jog pažengęs naudotojas nuo kreivarankio skiriasi tuo jog pažengęs naudotojas moka naudotis google ir sugeba sutvarkyt tai ką sugadino 🙂 Betvarkant tai ką sugadinau teko susipažint su pagrindiniais Android įrankiais, su root’inimu ir CWM įkėlimu susipažinau jau pirmą naudojimo dieną, su SDK įrankiais susipažinau vėliau, tai pasidalinsiu pirma patirtim. 

Kažkam kils mintis „naudoju android 5 metus ir niekad nieko nereikėjo, gyvenu be root teisių, niekas nebuvo sugedę, kas tas CWM, kas tas SDK“ jei jum kilo tokia mintis tai tiesiog toliau neskaitykit ir eikit į puslapius kuriuose rašo kuo naujas iphone geresnis už seną. Aš rašau tiems kurie lenda ten kur nereik ir kurie nori žinot kodėl viskas veikia taip, o ne kitaip. Ir išvis kodėl kažkas veikia arba nebeveikia.

Dalyje straipsnio bus parašyta ir iš „windows“ perspektyvos, bet aš rašau naudodamas „linux“ ir nesistengiu pateikt išsamios instrukcijos „windows“ naudotojams.

Android SDK diegimas

Reikia turėti JRE(aš naudoju openjdk variantą), abejoju ar pas ką nors jo nėra, todėl nerašysiu kas ir kaip.

Nueinam į Android kūrėjų puslapį, parsisiunčiam SDK Tools Only skirtą savo OS ir architektūrai. Parsiuntę išarchyvuojam, aš padėjau į /home/gymka/Dev/android kaip supratau ant windows tai daryt nieko nereik, diegyklė viską padaro už naudotoją. Ant linux reikia prie PATH kintamojo pridėt kelią iki sdk įrankių:

atidarom ~/.bashrc, pridedam eilutes

export PATH=$PATH:/home/gymka/Dev/android/android-sdk-linux/platform-tools
export PATH=$PATH:/home/gymka/Dev/android/android-sdk-linux/build-tools/android-4.3
export PATH=$PATH:/home/gymka/Dev/android/android-sdk-linux/tools

APK išarchyvavimas/suarchyvavimas atgal

Pirmiausia reikia įdiegti apktool. Parsisiunčiam patį apktool ir apktool-install-[reikalinga_OS]-r05-ibot.tar.bz2. Abu išachyvuojam „apktool.jar“ ir „apktool“ įdedam į /usr/bin aplanką. „aapt“ nededam, nes jau yra naujesnis iš SDK tools.

apktool d[ecode] apk_failas.apk aplankas_kuriame_išarchyvuoti

apktool d test.apk test

paredaguojam failus, aš išverčiau 🙂

apktool b[uild] aplankas_kuriame_išarchyvuota apk_failas.apk

apktool b test test_naujas.apk

 ADB Android Debug Bridge

Apie šitą programą galima būtų parašyt atskirą knygą, bet parašysiu tik apie tai ko man reikėjo. Gal ateity…

Visų pirma telefone reikia įjungt derinimo režimą per usb.

Android->Sistemos nustatymai->Kūrėjo parinktis->Įjungiam

Android->Sistemos nustatymai->Kūrėjo parinktis->USB perkrova(iš kokio žodžio čia versta?)->Įjungiam

Prijungiam telefoną prie PC.

Įvykdom:

adb devices

jei matom:

List of devices attached
????????????    no permissions

Reikia parašyti udev taisyklę, kad leistų rašyt į android’ą:

lsusb

Matom savo įrenginį, mano atveju

Bus 002 Device 005: ID 0bb4:0c03 HTC (High Tech Computer Corp.)

Atidarom /etc/udev/rules.d/51-android.rules

parašom

ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c03", MODE="0666", SYMLINK+="android_adb"

išsaugom.

udevadm trigger
 adb kill-server
 adb start-server

Bandom dabar

adb devices

Dabar matom(nebūtinai, taip. Ten turėtų rodyt telefono pavadinimą)

List of devices attached
0123456789ABCDEF    device

Reiškia viskas veikia.

Numatytosios vietos kur diegiamos programos keitimas

adb shell pm get-install-location

Greičiausiai gaunam:

0[auto]

Aš noriu jog programos būtų diegiamos į kortelę, nes telefono atmintį mažai vietos:

adb shell pm set-install-location 2

0 [automatiškai]: Leisti sistemai spręsti kur geriau diegti
1 [vidinė]: Diegti vidinėje telefono atmintyje
2 [išorinė]: Diegti išorinėje atmintyje

Failų įkėlimas/parsiuntimas

Įkeliam dainą į kortelę:

adb push /media/media/Muzika/test.mp3 /sdcard/test.mp3

Pažiūrim ar ji ten yra:

adb shell
cd /sdcard
ls

Matom jog įkėlė:)

exit

Nukopijuojam failą iš telefono:

adb pull /sdcard/test.mp3 /media/media/Muzika/test_is_telefono.mp3
adb shell
cd /sdcard
ls

Matom jog failas įkeltas

exit

Nukopijuojam failą iš telefono:

adb pull /sdcard/test.mp3 /media/media/Muzika/test_is_telefono.mp3

Objekto šalinimas iš foto [GIMP]

4 Comments

Pamačiau foto su pašaliniais objektais antram plane, iškart kilo mintis „jei programos dirbti su audio sugeba pašalinti vokalą vienu mygtuko paspaudimu, ar negali to pačio(pašalinti nereikalingą objektą) padaryti ir gimp“.

Atlikau tyrimą ir suradau ko tam reik:) O dabar dalinuosi patirtim taip sakant.

Turim nuotrauką, maždaug:

wtf

 

Tuos objektus reiktų pašalint, aš asmeniškai paprastai žiūriu į antrą planą, nes pirmam plane būna nuobodūs vaizdai, visas veiksmas vyksta antram plane 🙂

Yra GIMP įskiepis kuris be jokio vargo sugeba pašalint tuos objektus. Reikalingas įskiepis – Resynthesizer. Man tai ta sukompiliuota versija neveikė, sukompiliavau versiją iš git.

Įdiegiam įskiepį, atveriam reikalingą foto, pažymim reikalingą vietą.

mark

Filters->Enchance->Heal selection…

enchan

cuted

Šiuo atveju nelabai gavosi, reikia truputį pataisyt, bet tam ir yra „heal“ ir „clone“ įrankiai. Kuo didesnis objektas tuo didesnė pikselių reikšmė, bet reikia imt ir eksperimentuot. Beto pikselius generuoja atsitiktine tvarka, tai galima bandyt tą patį filtrą uždėt kelis kartus, tol kol tenkins rezultatas. Iliustracijose aš stengiausi parodyt kaip viskas vyksta, o ne realų rezultatą. Realus rezutatas pateikiamas pabaigoje. Aišku aš galėjau paimt tokią foto kur viskas pasišalina gražiai ir tik vienu mygtuko paspaudimu, bet man arčiau širdies tikroviška situacija.

Mano nuomone tai čia viskas ir taip aišku, bet jei kamnors dar kažkas neaišku pateikiu video su tuo pačiu turiniu:

Galutinis variantas:

final

P.S. jei kas dar nematėt mano foto, tai ten jiem už nugaros sėdžiu aš. Tiesiai už panelės 😀

Kaip įdiegti Android į VirtualBox (Linux/Windows)

2 Comments

test-2013-08-17-15-22-48

Norite turėti Android savo kompiuteryje? Android-x86 projektas buvo pritaikytas x86 platformai. Android-x86 galima įdiegti į nešiojamus kompiuterius, kurių aparatinė įranga yra palaikoma android, bet jūs galite įdiegti Android ir naudojant VirtualBox. t. y. Į betkurį kompiuterį.

Android bus tiesiog dar viena virtuali mašina, tokia kaip Windows ar Linux. Tai jums suteikia galimybę įdiegti programėles į pilną Android aplinką, tiesiog savo kompiuteryje.

Ko jums reikės

Prieš pradedant jums reikės VirtualBox ir Android-x86 ISO.

Android Virtualios Mašinos kūrimas

Atverkite VirtualBox ir sukurkite naują virtualią mašiną. Peržiūrėkite vedlio nustatymus ir nustatykite pagal šiuos nustatymus:

  • Operacinė sistema: Linux – Linux 2.6
  • Atminties dydis: 512 MB
  • Kietojo disko dydis: 3 GB ar daugiau

test-2013-08-17-14-00-51

Toliau, įjunkite savo naująją mašiną ir pasirinkite parsiųstą Android-x86 ISO failą. Bus įkeltas diegiklis.

Pasirinkite „Installationparinktį ir paspauskite Enter.

test-2013-08-17-14-05-27

Dabar Android sistemai reikia sukurti skirsnį. Pasirinkite parinktį „Create/Modify partitions ir paspauskite Enter.

test-2013-08-17-14-07-19

Su krypčių klavišais pasirinkite parinktį „New ir paspauskite Enter, bus sukurtas naujas skirsnis.

test-2013-08-17-14-07-44

Pasirinkite „Primary parinktį ir paspauskite Enter, tada dar kartą Enter ir skirsnis pasiims visą laisvą vietą.

test-2013-08-17-14-08-09

Norėdami padaryti skirsnį įkraunamu pasirinkite parinktį „Bootable ir paspauskite Enter, tada pasirinkite parinktį „Write ir paspauskite Enter, bus įrašyti jūsų pakeitimai. Pokyčiams patvirtinti turėsite parašyti „yes ir paspausti Enter.

test-2013-08-17-14-08-45

Aktyvuokite parinktį „Quit ir grįšite į skirsnių pasirinkimo ekraną.

Šįkart jūsų sukurtas skirsnis bus ekrano viršuje. Pasirinkite skirsnį ir paspauskite Enter, bus pradėtas Android diegimas.

test-2013-08-17-14-09-28

Pasirinkite „ext3 failų sistemą ir paspauskite „Yes, skirsnis bus suformatuotas.

test-2013-08-17-14-09-59

Pasirinkite „Yes ir bus įdiegtas GRUB įkėliklis, pasirinkite „Yes ir /system aplankas bus įdiegtas rašymui bei skaitymui.

test-2013-08-17-14-18-00
Kai baigėte, galima pašalinti ISO failą ir perkrauti virtualią mašiną.

test-2013-08-17-14-23-32

Android turėtų pasileisti taip pat kaip ir betkuri kita sistema virtualioje mašinoje. Kaip ir Android išmaniajame telefone ar planšetėje, turėsite atlikti kelis diegimo žingsnius ir suteikti Google paskyros duomenis. Praleiskite Wi-Fi nustatymo ekraną – Android naudos standartinį interneto susijungimą.

Vertėjo pastaba: nė velnio man ten nieks nepasileido:) Turėjau eit į google ir eit ieškot kame šaknys. Jei neužkrauna OS, tai pirmam ekrane(grub meniu) ant pirmos parinkties spaudžiame „e“ klavišą, tada dar kartą „e“ ir eilutę „androidboot.hardware=android_x86“ pakeičiam į „androidboot.hardware=x86“. Tada „Enter“ ir „b“. Tą reiktų pakeist ir grub meniu faile failų sistemoje, bet nesigilinau kur android saugo savo grub.cfg, todėl nepasakosiu kaip tai padaryti.

test-2013-08-17-15-15-01

Jei neveikia pelės žymeklis, paspauskite „Mašina“ ir pasirinkite parinktį „Uždrausti pelės integravimą“. Paspauskite virtualios mašinos viduje ir pamatysite pelės žymeklį. Norėdami išleisti pelės žymeklį iš virtualios mašinos lango paspauskite „host“ klavišą (rodomas virtualios mašinos lango dešiniame apatiniame kampe, pagal nutylėjimą tai „Deš Vald“).

Jums bus įkelta pilna Android aplinka, su Google programomis Gmail, Maps ir Play Store kitų programų diegimui.

Android yra sukurta liečiamam ekranui, bet veikia ir su pele bei klaviatūra – tai reiškia jog jūsų pelė ir klaviatūra bus pilnaverčiai įvesties įrenginiai. Tiesiog nebandykite daryti ko nors kam reikia „multi-touch“ galimybės.

test-2013-08-17-15-22-48

Tai nėra greičiausias būdas paleisti Android programas ant PC – BlueStacks yra greitesnis (jei jums reikia tik pažaisti „Temple Run 2“ ar kitą Android žaidimą savo kompiuteryje). Android-x86 suteikia priėjimą prie pilnos Android sistemos, tiesiog virtualioje mašinoje. Tai puikus būdas susipažinti su Android sistema ar tiesiog paeksperimentuoti taip kaip eksperimentuojate su kitomis OS jų neįdiegę į tikrą sistemą.

Pereikite į pilno ekrano režimą ir pasijusite kaip Android naudotojas su nešiojamuoju kompiuteriu. Jei mūsų girdėti gandai yra tiesa, Android nešiojamiems kompiuteriams bus išleista jau šiais metais – „ASUS Transformer “ įrenginiai jau veikia kaip Android įrenginiai.

test-2013-08-17-15-24-46

Naršau su Android 🙂

 

Tai yra straipsnio vertimas

Autorius: Chris Hoffman

Vertė: Algimantas Margevičius

Kaip dėl „copyright“ tai nežinau, autorius perpublikuot neleidžia, bet išverst leidžia… Kadangi aš vertėjas tai ir vertimo autorinės teisės turi priklausyt man, taip sakant imkit mane ir skaitykit, platinkit, perpublikuokit tik nepamirškit iš kur paėmėt ir kitiem pasakykit kur gavot 😀

„CSRF“ arba „kodėl reikia naudoti naujausią programos versiją“

2 Comments

Nutiko taip jog reikėjo argumentuotai paaiškint kodėl reikia naudot naujausią forumą versiją ir kodėl reikia gaišt savo brangų laiką atnaujinant forumą(ar programinę įrangą). Sausa teorija paprastai nepasiekia adresato:) Reikėjo parodyt praktiškai, tiesiog kad nebeliktų klausimo „kodėl“. Aš nei su saugumu nei su piktavaliais neturiu nieko bendro ir gilių žinių toje srityje neturiu, viskas kas čia parašyta yra paimta iš google, tiesiog surinkta informacija ir pritaikyta praktikoj, tai nėra mano asmeninė ilgametė patirtis.

Iš wikipedia(laisvas vertimas):
Cross-site request forgery, taip pat žinoma kaip vieno spragtelėjimo ataka ar sesijos užvaldymas trumpinama kaip CSRF ar XSRF, tai yra kenkėjiško tipo pažeidžiamumas kai tinklapiui perduodamos komandos/užduotys nelyg jas perduotų patikimas naudotojas. Netaip kaip cross-site scripting (XSS) kuri išnaudoja naudotojo pasitikėjimą konkrečiu tinklapiu, CSRF išnaudoja tinklapio pasitikėjimą naudotoju(jo naršykle).

Praktinė pusė

Pažeidžiamumas phpbb2(sena versija, todėl reik naudot phpbb3) forume, visų gautų naudotojo AŽ pašalinimas(lygiai taip pat galim naudot pridėjimą į administratorių grupę ar šiaip naudotojo pašalinimą, bet pavyzdžiui naudoju nekaltą variantą).

Nueinam į google parašom „phpbb2 exploit“ ir renkamės iš milijono pažeidžiamumų, bet ne tame esmė 🙂 Darom prielaidą jog reikia padaryti tai kas neaprašyta arba aprašyta per daug glaustai. Įsidiegiam(arba nueinam į aukos forumą) phpbb2 forumą, susirandam norimą atlikti(kurį atliks auka) veiksmą, mano atveju tai visų AŽ šalinimas. Nueinam į puslapį kuriame galima trinti visas AŽ mano atveju http://localhost/phpBB2/privmsg.php?folder=inbox matom mygtuką „delete all“, mūsų atakos tikslas – padaryti taip jog forumas galvotų jog naudotojas paspaudė tą mygtuką:) Paspaudžiam jį, mūsų paklausia ar tikrai. Tai yra paskutinis žingsnis prieš atliekant veiksmą, jis mum ir reikalingas, galima naudoti tam skirtas programas arba paanalizuoti pradinį kodą ir pažiūrėti ką ir kur forumas siunčia, aš naudoju firefox tai tiesiog nueinu Firefox->Priemonės->Saityno kūrėjams->Tyriklis->Paspaudžiu ant pasirinkimo galimybės, pasirenku mygtuką „Yes“ ir matau reikalingą kodo dalį:

<input type="hidden" value="" name="mode"></input>
<input type="hidden" value="true" name="deleteall"></input
input type="submit" value="Yes" name="confirm"></input>
<input type="submit" value="No" name="cancel"></input>

Matau jog „post“ metodu siunčiami 3 duomenys(pastaba: aš dabar pagalvojau, jei nemokat programuot(web), nesugebat skaityt pradinio puslapio kodo tai aš rašau ne jums, be reikalo skaitot) :
„mode“, „deleteall“ ir „submit“ tai tikslas tampa aiškus – reikia forumui nusiųsti tuos duomenis, parašom(kalba pagal pageidavimą ir situaciją) maždaug:

<html><body onload=javascrtipt:document.xsrf.submit()>
<form action="http://localhost/phpBB2/privmsg.php?folder=inbox" method="post" name="xsrf">
<input type="hidden" name="mode" value=""/>
<input type="hidden" name="deleteall" value="true"/>
<input type="hidden" name="confirm" value="Yes"/>
</form></body></html>

kadangi sugebat skaityt pradinį kodą, tai manau čia viskas aišku. Išsaugom kaip „csrf.html“. Įkeliam tą failą kurnors į nemokamą talpinimo srevery ar šiaip kurnors. Dabar tikslas yra priversti naudotoją(prisijungusį prie forumo kuriame bus ištrintos AŽ) nueiti į tą puslapį, galim parašyt kažkokį tekstą kuris priverstų auką nueiti į tą puslapį arba vietoj html naudoti paveiksliuką(apie .htaccess ir failų tipus nepasakosiu) arba šiaip kažką sugalvot, tikri piktavaliai manau turi nepalyginamai daugiau socialinės inžinerijos žinių ir turi kažkokių patikimesnių būdų, aš sugalvojau tik tokius variantus. Vienu žodžiu tam forume parašom žmogui AŽ su tekstu:
Labas, paskaityk mano naują įrašą http://akmc.lt/csrf.html parašiau kaip žiūrėti mokamą pornografiją nemokamai:) “ žmogus paspaudžia ant nuorodos, jam parodomas tuščias langas(nes faile csrf.html neparašyta instrukcija kur rast nemokamos pornografijos, bet galim ir parašyt) ir forume kuris yra „auka“ pašalinamos visos to žmogaus AŽ 🙂 Išbandyta praktikoj, viskas veikia 🙂 Kai pašalinamos visos AŽ galima parašyt naują AŽ su tekstu „va todėl reikia naudot naujausią forumo/programinės įrangos versiją, senose žinomi ir viešai prieinami visi pažeidžiamumai ir kiekvienas norintis gali jais pasinaudoti“.

P.S. Aš rašiau su mintimi „naudokit naujausią programos versiją“, o ne „va instrukcija kaip galit pasijust hacker’iais ir pridaryt kažkam bėdų“.

Reikalingo turinio parsiuntimas

No Comments

Jau senai berašiau tai nusprendžiau parašyt:) Neturiu nei noro nei laiko daug galvot, todėl parašysiu tiesiog tai su kuo šiandien susidūriau, taip sakant kas ant liežuvio galo.

Kai kurie puslapiai siūlo turiny, bet ne tokia forma kokios mums reikia. Aš noriu turėt dainą kompe, o ne klausyt internete; aš noriu paveiksliukus žiūrėt su „feh“, o nespaudinėt pele ant visų iš eilės 🙂

Yra puslapis, jame yra dainų, man reikia tų dainų:

Nueinam http://www.algimantasbutnorius.lt/galerijos/dainos savaime aišku galim būtų atvert kokią nors garso redagavimo programą ir įrašyt(kaip šaltinį pasirenkam „waveout“) dainą paleidus ją internete, bet tai užtruktų labai ilgai. Vienu žodžiu per daug vargo, todėl reikia kito būdo.

Išsaugom puslapį ir pažiūrim kas ten rašoma(firefox turi įrankį „Tyriklis“, užvedam pelę ant mygtuko „groti“ ir iškart matom reikalingą info. Nereikia vargt su pradiniu kodu). Patyrinėjus pradinį kodą matom jog ten yra surašyti mp3 adresai, belieka juos pasiimti ir parsisiųsti failus 🙂

Mums reikalinga dalis yra

<object width="200" height="20" bgcolor="" data="/components/com_uploadmusic/mp3/dewplayer.swf?son=http://algimantasbutnorius.lt/components/com_uploadmusic/mp3/ZEME APVALI.mp3&amp;autoplay=0&amp;autoreplay=0" type="application/x-shockwave-flash">

Reikia iškrapštyti reikalingą tekstą:

sed -n "s/.*(http://algimantasbutnorius.lt/component/com_uploadmusic/mp3/.*mp3).*/1/p" a.htm>mp3.txt

Dabar reikia parsisiųsti tuos failus:

wget -i mp3.txt

Va ir padarėm tai ko reikėjo:)

Muzikos jau turim, dabar reikia paveiksliukų telefonui:)

Nueinam http://seclub.org susirandam paveiksliukų, matom daug kategorijų ir jose daug paveiksliukų…

…gymka mąstė, mąstė…

#!/bin/bash
#scenarijus parašytas senai, gali būt jog nebeveikia, bet parodyt principą tai pats tas:)
kategorijos=(75 18 20 42 21 43 55 24 71 34 51 45 49 22 67 68 26 47 69 27 28 66 29 70 31 25 54 50 52 30)
#url yra http://seclub.org/dn.php?d=1&q=3&r=9&c=75 c=kategorija, kiti skaičiai turbūt turinio tipas ir raiška, aš ten perdaug nesigilinau, ne tame esmė. Tai reikia surinkt visas kategorijas į vieną masyvą ir atlikt tuos pačius veiksmus su visom kategorijom. Tam parašom funkciją.

function parsiust()
{
kiek=$(wget -qO- "http://seclub.org/dn.php?d=1&q=3&r=9&c=$1"|sed -n 's/.*Всего: ([0-9]*).*/1/p')
#adrese yra puslapio numeris, todėl reik išsiaiškint kiek išvis yra tų puslapių. Kadangi yra eilutė kiek išvis yra paveiksliukų toj kategorijoj ir žinom jog kiekvienam puslapy po 10, tai belieka visų paveiksliukų skaičių padalint iš 10, jei skaičius nelygus tada +1.
kiek2=$(calc 22/10|sed 's/.*..*/1/')
if [ $kiek2 == '1' ]
then
puslapiu=$[$kiek/10+1]
else
puslapiu=$kiek2
fi

i="1"
while [ "$i" -le "$puslapiu" ]
do
wget -qO- "http://seclub.org/dn.php?d=1&q=3&r=9&c=$1"|grep 'http://files.seclub.org/.*'|sed 's/.*<a href="(http://files.seclub.org/pic.*)".*/1/'>>links.txt
echo $1:$i
#kiekvienam puslapy yra adresai į paveiksliukus, belieka juos iškrapštyt iš failo ir surašyt į vieną txt failą.
i=$[$i+1]
done
}
rm links.txt

for y in "${kategorijos[@]}"
do
parsiust $y
done
wget -i links.txt
#adresai išgauti ir surašyti į failą, belieka parsiųsti visus failus
rm links.txt

P. S. Savaime aišku aš negaliu užrašyt ką daryt kiekvienu atveju, nėra tokios formulės kuri tiktų visom įmanomom situacijom ir visiem puslapiams, tik patirtis gali padėt sugalvot kaip prieit prie kiekvieno puslapio. Šitam įraše aš tiesiog noriu parodyt kelis konkrečius pavyzdžius kaip padaryt tai ko jums reikia, aš nesiruošiu mokint galvot 🙂

HotShots – dokumentacijos ekranvaizdžių kūrimui

1 Comment

Apie

„Hotshots“ yra ekranvaizdžių kūrimo įrankis su redagavimo funkcijomis. Jis ypač tinka dokumentacijos iliustracijų kūrimui (arba šiaip kokiam atgrubnagiui parodyt kurį mygtuką paspaust).
Kadangi HotShots parašytas su Qt jis veikia Linux ir windows sistemose.

Galimybės

Gali įrašyti esamo ekrano vaizdą, visų monitorių vaizdą (jei yra keli monitoriai), dabartinio lango ar dalies darbastalio vaizdą.
Išsaugoti ekranvaizdį populiariausiais formatais (PNG, JPG, BMP, …).
Automatiškai išsaugoti ekranvaizdį į iškarpinę ar diską; paleisti redagavimo įrankį.
Automatiškai pakeisti ekranvaizdžio dydį iki pasirinkto dydžio.
Ekranvaizdžio kūrimui naudoja „sistemos“ sparčiuosius klavišus.
Automatiškai prideda kelis efektus (šešėlio metimas, pasukimas, rėmelis, …).
Gali būti sumažintas į sistemos dėklą ir dirbti fone.
Galima paleisti kartu su sistema (Windows).
Eksportuoti paveikslėlį įvairiais formatais (PNG, JPG, BMP …).
Saugoti/Atstatyti redaguotą paveikslėlį savu formatu.

Lietuviška sąsaja.

Palaikomos platformos

Linux (reikia kompiliuoti)

Windows XP, Vista, Seven (su diegykle)

Kaip atrodo

Galimybės vaizdžiai

1. Apibraukimas

2. Didinimo stiklas

3. Tekstas

4. Rodyklė

5. Teksto paryškinimas

6. Vaizdo suliejimas

Diegimas

Archlinux naudotojai gali diegti iš AUR

Likę Linux ir windows naudotojai gali parsisiųsti iš autoriaus puslapio.

 

P.S. Projektas nesenai pradėtas, tai dar galima būtų pridėti ne vieną galimybę, manau ateity jos ir bus pridėtos. Esminis faktorius kodėl išvis rašau apie šią programą – ji lengva ir greita, ne taip kaip pvz. „shutter“ kuri atsidaro ne ką greičiau nei „gimp“.

Older Entries