[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 🙂

Shell scenarijų internaciolizacija ir lokalizavimas

No Comments

loc
Aprašysiu kaip paversti shell scenarijų lokalizuojamu. More

„Conky“ orų scenarijus

No Comments

Kadangi tai atviro kodo mokymo centras tai pateiksiu medžiagos mokymuisi 🙂

Atnaujinau savo orų scenarijų (originaliai dalis kodo buvo rašyta ne mano, dabar viskas parašyta mano rankom). Tai nusprendžiau pasidalint kodu (dar kartą).

Orų scenarijus vaizdžiai:

small
Bendras darbastalio vaizdas:

Kodą pateikiu ne galutiniam naudotojui, bet žmonėms kurie dar tik pradeda naudotis linux ir jiems „Bash“ ir „conky“ tamsus miškas, nagrinėjant kažkieno parašytą kodą žymiai lengviau mokintis nei pradėt rašant savo kodą nuo 0.
Scenarijus pilnai paruoštas naudoti ir nieks netrukdo naudoti galutiniam naudotojui.

Pats kodas: https://github.com/gymka/conky_orai_LT
Parsiunčiam su komanda:

git clone git://github.com/gymka/conky_orai_LT.git

Visa kita yra README faile, todėl čia nerašysiu.

GPG/PGP kas tai?

1 Comment

GPG (GNU Privacy Guard) kas tai? Tai yra nemokama ir atviro kodo PGP (Pretty Good Privacy) alternatyva. Kadangi šis tinklapis skirtas FOSS, PGP daugiau neminėsiu, tiesiog turėkit omeny jog tai tas pats tik autoriai skirtingi. GPG tai yra programa duomenų šifravimui ir iššifravimui. Dažnai naudojama el. laiškų pasirašymui ar/ir šifravimui.

Diegimas

Turbūt visi distributyvai savo saugyklose turi paketą „gnupg“ (arba panašiai pavadintą). Kaip diegti nepasakosiu, visi žino.

Raktai

Yra 3 raktai:

Viešas įkeliamas į kelis raktų saugojimo puslapius, kartais prisegamas prie laiško, dažniausiai paraše būna parašomas tik rakto numeris pvz. GPG: 0x21C70548
Privatus su juo šifruojama/iššifruojama. Neduokdie papuls į blogas rankas.
Atšaukimo raktas, su šiuo raktu atšaukiamas rakto galiojimas, jis pažymimas kaip neveikiantis. Šio rakto prireiks tada jei pamiršite slaptažodį arba privatus raktas pateks į blogas rankas. Jeigu ką, tai laikyt privatų ir atšaukimo raktą toje pačioj laikmenoj visiškai neprotinga 🙂

Generavimas

Pačio rakto generavimas

Komanda:

gpg --gen-key

ir atsakom į visus klausimus, numatytosios reikšmės visiškai tinkamos naudoti. Tik aš siūlyčiau nustatyti galiojimo laiką, pvz. 1 metus. Po metų bus galima pratęsti jo galiojimą. Pametus raktą ir jo neatšaukus tikrai žinosime jog jo nepanaudos niekas kitas.

Viešojo rakto failo generavimas
Sugeneravus raktą reikia sukurti viešą raktą:
pirmiausia pažiūrim kokie raktai saugomi raktinėj

gpg --list-keys

matom maždaug:

------------------------------
pub 2048R/21C70548 2011-12-14 [expires: 2016-12-12]
uid Algimantas Margevičius <margevicius.algimantas@xxxxxxx>
uid gymka <gymka@xxxxxxx>
uid archlinux <gymka@xxxxxxx>

mūsų rakto id yra 21C70548 (toliau visur bus naudojamas šis skaičius, o ne „rakto_id“, nes taip lengviau skaityt)

gpg --export --armor -a 21C70548 >21C70548.asc

sukuriamas failas „21C70548.asc“ jį galima dalinti bet kam ir bet kur, pvz. prisegti prie pasirašyto/užšifruoto laiško.

Yra daug raktų serverių, aš siunčiu į šiuos 3:

gpg --keyserver pgp.mit.edu --send-keys 21C70548
gpg --keyserver subkeys.pgp.net --send-keys 21C70548
gpg --keyserver pool.sks-keyservers.net --send-keys 21C70548

Dabar mūsų raktas yra raktų serveryje ir visi kiti žmonės galės patikrinti mūsų raktą turėdami tik rakto ID t. y. „21C70548“, nebūtina duoti failo „21C70548.asc“. Tam skirta programa jį parsiųs iš serverio ir patikrins.

Privataus rakto failo generavimas

gpg --export-secret-keys 21C70548 --output privatus_raktas_iskart_perkelti_i_saugia_vieta

Atšaukimo rakto generavimas

gpg --output atsaukimo_raktas_saugoti_ne_ten_pat_kur_privatus_raktas.asc --gen-revoke 21C70548

ir atsakom į užduotus klausimus. Jei raktas tampa sukompromituotas, pvz. piktavaliai pavagia slaptažodį ar šiaip privatų raktą. Atšaukiam mūsų rakto galiojimą:

gpg --import atsaukimo_raktas_saugoti_ne_ten_pat_kur_privatus_raktas.asc

tada išsiunčiam jį į serverį jog visi žinotų jog šis raktas sukompromituotas:

gpg --keyserver pgp.mit.edu --send-keys 21C70548
gpg --keyserver subkeys.pgp.net --send-keys 21C70548
gpg --keyserver pool.sks-keyservers.net --send-keys 21C70548

Naudojimas

Rakto importavimas
Jei reikia importuoti raktą ir to nepadarė jūsų pašto programa ar failų tvarkyklė:

gpg --import raktas.asc

Failo užšifravimas

gpg -o naujas_uzsifruotas_failas_kuri_siusime.txt --encrypt -r 21C70548 failas_kuris_bus_uzsifruotas.txt

Failo iššifravimas

gpg --decrypt naujas_uzsifruotas_failas_kuri_siusime.txt

Rakto redagavimas, galiojimo laiko keitimas

gpg --edit-key 21C70548

Patenkam į gpg shell, parašius „help“ gausim visas galimas komandas, dėl savaime suprantamų priežasčių aš neaprašinėsiu jų.
Parašom „key“ matom maždaug:

gpg> key
pub 2048R/21C70548 created: 2011-12-14 expires: 2016-12-12 usage: SCA
trust: ultimate validity: ultimate
sub 2048R/803B871A created: 2011-12-14 expires: 2016-12-12 usage: E
[ultimate] (1). Algimantas Margevičius <margevicius.algimantas@xxxxxxx>
[ultimate] (2) gymka <gymka@xxxxxxx>
[ultimate] (3) archlinux <gymka@xxxxxxx>

galima redaguoti ne pagrindinį raktą, bet ir papildomus raktus. Pvz. norint redaguoti tą kuris pavadintas „archlinux“ turėčiau parašyt „key 3“.
Tada parašom „expire“ matom maždaug:

gpg> expire
Changing expiration time for the primary key.
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0)

ir įrašom galiojimo laiką, aš noriu jog mano raktas galiotų metus, skaičiuojant nuo šiandien, todėl parašau „1y“. Patvirtinus pakeitimus išsaugom pakeitimus parašydami „save“. Pakeitimai kol kas yra tik mūsų kompiuteryje, juos reikia išsiųsti į serverį, kad visas pasaulis žinotų kada baigsis mūsų rakto galiojimas.

Savaime aišku yra ir tam skirtų programų kurios gali kurti ir redaguoti raktus ir jos turi GUI. Pvz. „seahorse“. Ten savaime viskas aišku todėl nerašysiu kas ir kaip.

Praktika

Aš asmeniškai paštui naudoju programą „thunderbird“, ji pagal nutylėjimą nesusitvarko su gpg. Tam yra plėtinys „enigmail“. Įdiegus jį ten viskas aišku kas ir kaip, todėl taipogi nerašysiu kaip naudotis.

Praktiniai panaudojimo pavyzdžiai:

  1. Siunčiat ne viešus duomenis el. paštu, net jei ir piktavaliai nenulauš jūsų pašto dėžutės vistiek tuos duomenis gali perskaityt pašto serverio administratorius, teisėsauga ir google bot’as 😀 kai duomenys vieši tai nebėda, bet jei reik perduot neviešus duomenis tada į pagalbą ateina laiškų šifravimas. Užšifravus laišką jį gali perskaityt tik žmogus kuriam skirtas tas laiškas(siuntėjas užšifruoja laišką viešu gavėjo raktu, jį iššifruoti galima tik to gavėjo privačiu raktu).
  2. Failų tapatumo patikrinimas, jei parsisiunčiat ubuntu cd atvaizdį ir jis yra išskirstytas į daug .rar failų jų tapatumą/vientisumą galima patikrinti su kartu pridėtu .sfv failu, bet jei žmogus jums atsiuntė programą kuriai reikia „root“ teisių tai jūs tikrai nepasitikėsit nežinia kieno parašytu sfv failu ir nediegsit tokios programos į savo sistemą. Čia į pagalbą ateina gpg, jūs turit siuntėjo viešą raktą ir galit patikrint ar gavote tikrai tą failą kurį siuntė siuntėjas. Siuntėjas jums atsiųs, jūsų viešu raktu pasirašytą failą ir iššifruoti tą failą galėsite tik jūs. Praktikoj „archlinux“ paketai yra pasirašyti gpg raktais ir diegiant yra patvirtinamas jų tapatumas, įsitikinama ar tikrai tai tie failai kuriuos įdėjo „archlinux“ kūrėjai, o ne piktavaliai įsilaužę į „archlinux“ paketų saugyklas. Apie tai plačiau galima paskaityti archwiki.

P. S. dar daug ko neparašiau, bet ir taip labai jau ilgas tekstas gavosi. Gali būt jog kada nors parašysiu antrą šio straipsnio dalį, taip sakant pratęsimą.

Šrifto sulietuvinimas/lokalizavimas

3 Comments

Kartais prisireikia gražaus šrifto, savaime aišku jie neturi lietuviškų raidžių 🙂 Todėl tenka nusipiešt jas patiems, dėkui dievui jog reikia tik lietuviškų raidžių, o ne visos kirilicos abėcėlės. Kartais galima tiesiog GIMP programoj prie „e“ pridėt tašką ir gausim „ė“, bet vienas dalykas – tai nevisada gražiai atrodo, o kitas dalykas – tokioj programoj kaip „LibreOffice“ galimybės pripiešt diakritikus galimybės nėra.
Šiam darbui puikiai tinka programa „fontforge“ (susitvarko su visais formatais, tiek su TTF tiek su otf). Man per gyvenimą reikėjo sulietuvint 3 šriftus, tuo mano patirtis su ta programa ir baigiasi tai neturiu ką daug papasakot. Iš esmės tai ten viskas paprasta (jei reik tik pataisyt kelias raides), valdymas kaip ir visose: ctrl – velka, shift – keičia dydį, įrankių piktogramos kalba pačios už save. Tik kiekvienam žingsny reikia išsaugot projektą, nes programa dažnai lūžta. Prirašiau pakankamai, dabar kas liečia esmę. Tekstu užrašyt kas ir kaip negaliu todėl štai video (jei reikia instrukcijos tai žiūrėkit HD kokybe ir visam ekrane, sustabdydami reikalingus kadrus):

Vaizdu taipogi negaliu parodyt visų įmanomų atvejų. Principas: paimam „A“ pridedam nosinę ir gaunam „Ą“, tas pats su mažąją raide. Pačią nosinę paimam iš to kas panašu į nosinę, mano atveju dalis „N“ raidės buvo panašu į nosinę, gal kitu atveju tiks raidė „Q“, trečiu atveju gal bus ne lotyniška raidė su nosine (nosinė būna per vidurį raidės) tai galim paimt ją ir pastumt į šoną. Kas liečia varnelę tai paimam tai kas panašu į varnelę, tai gali būt „V“, dvi raidės „I“ ar „l“, „!“ ir uždedam virš „S“ ir kitų.
Geriausia mokintis empiriškai, o ne skaitant blogus 😀

P.S. jei kas nežino tai šriftai saugomi ~/.fonts ir /usr/share/fonts aplankuose. Jei kam trūksta šriftų tai galiu pasidalint šriftais iš savo sistemos (surinkta iš visur)

Older Entries