23 Dec

SafeSlinger – Whatsapp dan daha təhlükəsiz.

Yəgin ki son zamanlar media təmsilçilərdən çoxunuz Snouden və NSA barədə eşitmisiniz. İndiki zamanda privat info nun nəgədər vacib oldugunu hətta Facebook, Google və sairə şirkətlərdə bilirlər. Əsas məlumat email yox, hətta online oyunlar və messengerlərədə aiddir. Bunlardan ən popular Whatsapp application da tez-tez təhlükəsizlik səhflər aşkar edilir və vaxtında bəziləri düzəldilir. Ancag həmin serverlər yazdigimiz məlumatı saxlayıb-saxlamamasını heç kim bilmir. Məsələn şəkil və digər informasiya.
Keçən dəfə bir maragli messengerə rast gəldim – SafeSlinger. Bu messenger BSD lisens ilə və PGP (PGP (Pretty Good Privacy) – verilənləri enrypt və decrypt etmək üçün kriptoqrafik gizlilik (privacy) və autentikasiyanı təmin edən kompyuter proqramıdır.) üzərində Carnegie Mellon Universitetində düzəldilib. Əsas məgsəd göndərilən və alan məktubları PGP açarları ilə şifr və deşifr eləyək yazib göndərmək və almagdır. Təkcə tekst yox, hətta şəkillərdə şifr edib göndərmək olur. Read More

04 Oct

Java + Ruby = JRuby

Salam. Yəginki Java programlaşdırma dili ilə tanış olmusunuz, və ya hardasa eşitmisiniz, bəlkədə bir professional programçısınız. Ruby isə mənim ən sevdiyim programlaşdırma dillərdən biridir. Ola bilərki Ruby on Rails barədə bilirsiniz. JRuby isə Javanın və Rubynin mükəmməl bir mixtura – qarışıgıdır. Bəlkədə fikirləşərsiniz, axı mən əla Java/Ruby Programmistəm və mən Java/Rubydə istədiyi programmı sərbəst yaza bilirəm – mənə bunların odlu miksturası nəyə lazım? Amma əslində bu hər iki dilin, bütün programlaşdırma dillərdə oldugu kimi mənfi və müsbət cəhətləri var.(JRubynin özünündə – amma bir az sonra).
Deməli Javanın Ruby ilə müqaisədə dərinliyə getməyərək gözə çarpan mənfi cəhətləri bir gədər təzə başlayanlar üçün çətin sintaksisi, open source olmadıgı(söhbət java-sundan gedir, open-jdkdan yox) və sairədir. Rubynin isə Javakimi geniş yayılması, çoxlu kitabxanaların(javadaki kimi) olmaması və sairə. (Onların geniş müqayisəsi internetdə doludur). Amma JRuby bunların müsbət cəhətlərini bir yerə dolduran bir programlaşdırma dilidir. Və o mükəmməl Ruby sintaksisi ilə Java kitabxanaları istifadə etməyə getdikcə inkişafla cəld göstərir. Bu postdada Javanın və Rubynin birlikdə istifadə etdii JRuby dən bir misal gətirmək istərdim.(Misallar “The Pragmatic Bookshelf | Using JRuby” kitabdan götürülmüş və dəyişilmişdir).
Əvvəlcə bir Java classı yazag:

1
2
3
4
public class Regem{
private int birRegem = 0;
public Regem() {}
}

Onu jar fayla köçürdək(Əslində bizim rb faylda Java class faylı da istifadə etmək olar, lakin əsas kitabxanalar jaroldugu üçün elə jar ilə istifadə etməyi öyrənmək məqsədə uygundur) Read More

19 Aug

Nesta CMS ilə blog.

Tempus edax rerum. Bəli, vaxt şimşək kimi keçib gedir. Nəsə çatdirmag bu həyatda geyri mümkün olur. Axırıncı postdan sonra mən hətta Bakiya uçub geri qayitdim. Baki dəyişməyib, hətta gözəlləşib. Həmin dostlar, həmin məhlə.
Qeyri adi nə yazım – heçnə. Hamı işlə məşgul, mən isə yenədə geyri adi şeylər axtarıramki bloga yazım. Bəzən məndən soruşurlarki:

  • Axı sən bunu nəyə görə yazırsan.
  • Bilmirəm. Mənə maraqlıdır.

Amma çox az adam bilirki, bu cavabın arxasında mindənə fikir bir birinə dolaşıb. Ümumiyətlə nəsə yazanda mən elə bilki rahatlaşıram. Heç bilmirəm bunları oxuyan olur və yox. Ola bilər. Bir iki məni həyatda tanıyan dostlarım..
Fəlsəfə bu günə bəsdir. İnternetdə bir xəbər oxudum. De domeyni cəmi 5 avroya. Nə gəşəng. Fikrim məni oyatdı. Ruby de blog CMSı axtardım. Nesta CMS.
Ruby üçün free hosting – Redhatdan Openshift gəldi. Əla. İndi isə gəlin Ruby də yazılmış Sinatra da düzəldilmiş Blog CMSi guraşdırag. Bunula biz pulsuz HTML5 Blog Saytı yaradaq.
Əvvəlcə Nestanı lokal yükləyib guraşdıraq:

1
2
$ gem install nesta
$ gem install bundler

Lokal saytın şablonu yaradag: Read More

25 Jul

Kitabxana əhvalatı..

UntitledBu postu garanliqda və şərabla yazıram. Qaranliqda – çünki galdıgım yataqxananın otagında bütün lampalar yanıb. Şərabla, bu dəfə Ruby Cabernet, – çünki gündəlik işlərimi gurtarandan sonra, axşamlar arada bir özümə belə şeyləri icazə verməyə xoşlayıram. Amma bunlara baxmayaraq, düşünürəmki məgalə maraqlı olacaq. Çünki budəfə mənim Düsseıdorfda ən xoşladıgım yerlərdən biri(yəginki 4square də çekinlərdən bilinir) – Düsseldorf Mərkəzi Kitabxanasından söhbət gedəcək.
Kitabxana demək olarki şəhərin ən aktiv olan bir yerdə yerləşir. Bu mərkəzi dəmiryol vagzalın çıxışındadır. Çıxışlardan bir tərəfi şəhərin mərkəzi, Rayn çayı tərəfə, obirisi isə Universitet və Kitabxana tərəfə açılır. Bunu kim və niyə məhz belə fikirləşdiyini bilmirəm. Amma maraqlıdır.
Kitabxanada minlərlə köhnə və müasir kitab yox, həmdə CD-DVD disklər, pulsuz sürətli İnternetdə var. Bunları cəmi illik 20 euroya abunə olmagla 3-4 həftəlik kitabları, diskləri isə 1 həftəlik əldə etmək olar. Kitabların müddəti isə 2-3 dəfə , kitabxanaya getməyərək, onlayn artırmag olar. Bunula bəzi kitablar pdf formatda yükləyib 2-3 həftə oxumag imkan verilir. Abunə olmag istəmirsənsə, gəl, elə kitabxanada pulsuz otur, oturmaga yerlər doludur, və oxu. Yəni təhsil, belə olmalıdır. Tam pulsuz, və müasir. Əsaski maragın olsun. Amma kitabları vaxtında gaytarmagı unutma, çünki bir kitab bir gün uzatsan bir avro cərimə olunacagsan. Demək lazımdır ki, götürmək istədiyin kitabların sayına heç bir məhdudiyyət goyulmur. Nəgədər istəyirsən – o gədərdə götür.
Diqqət şəkillər: Read More

02 Jul

Parser ilə işləmək.

Crack – sadə Json və XML parseridir. Nümunədə Linux terminalda Hava haqqında məlumatı göstərməkdir. Məlumatı http://openweathermap.org/ saytından alırıg. Request – şəhərin adı, celsiy və ya kelvin, əlavə məlumatı hansı dildə təgdim olunmasını da seçmək olur.
Cavabda isə Hava haqqında məlumat: temperatur, küləkin sürəti, buludların olub olmaması və sairə məlumatı almag olur.
Düzdür bu sadə parserdi, və məsələn Nokogiri kimi güclü parserə çatmaz, lakin sadə proektlərdə işlətmək olur.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
require 'crack'    # Crack və net/http gemin əlavə olunması.
require 'net/http'

uri = URI('http://api.openweathermap.org/data/2.5/weather?q=Baki&mode=xml&units=metric&') # lazım olan məlumat
xml = Net::HTTP.get(uri) # openweather saytın apidən xml formatda məlumatın alınması
xml_pars = Crack::XML.parse(xml) # XML Parsingi

print "Location: " # Parsing olunan məlumatın göstərilməsi
puts xml_pars['current']['city']['name']
print  "Temperature Max in Celsius: "
puts xml_pars['current']['temperature']['max']
print "Temperature Min in Celsius: "
puts xml_pars['current']['temperature']['min']
print  "Weather: "
puts xml_pars['current']['weather']['value']

Və nəticə:

1
2
3
4
5
6
$> ruby hava.rb
 Location: Baki
 Temperature Max in Celsius: 25.6
 Temperature Min in Celsius: 23.0
 Weather: few clouds
$>
19 Jun

Open Build Service nədir ?

Son zamanlar aglıma bir fikir gəlirki, demək olarki axırıncı 8 ildirki Open Source programlar və ya hər hansı proyektlərdən istifadə etmişəm. Onlardan 6 ildir ki daim pauzasız Linux ƏSistem istifadəçisiyəm. Bəs mən Open Sourca nə vermişəm? Hansısa projekt, programm, hətta hansısa manualın tərcüməsi ?? Belə suallar hər hansı Open Source istifadəçisini yaranıb yəginki.

Düzdür heç kim heç nəyi sizdən tələb etmir. İstifadə edirsinizsə, lap yaxşı – istifadə edin. Amma biz, istifadəçilər, onun giymətini bilmirik. Bilirsiz niyə görə? Çünki əksər zamanda(95%) bizim siznən kompyuterimizdəki Windows və ya Microsoft Officə biz kəlam pul tökməmişik. Ona görə. Biz ona görə bu fərgini bilmirik, hiss etmirik. Fərgi hiss etmək üçün isə Windows8 55-70 Euro(hər ildə update və sair işləri heç demirəm), Microsoft Office isə ondan da çox – təxminən 75-200 Euro vermək və hügug ganunu pozmayarag rahat yaşayag. (Giymətlər Almaniya İT Bazarında götürülmüşdür). Mən hər hansı pirat diksləlrdə olan oyunları demirəm. Belə bir fikirlər Open Source gabagında bir az utancag hisslər yaradır.

Deməli belə bir fikirlər, Open Sourca nəsə gaytarmag, məni Open Build Servicə yönəltdirdi. Open Build Service – OpenSuse Build Servis di. Yəni,təzə yaradılan zaman, Opensuse üçün hər hansi programı source (isxodniklərdən – tar.gz) rpm paketləri yaratmag üçündür. Hal hazırda istifadəçi nəinki OpenSuse – hətda Debian, Ubuntu, Mandriva, Fedora və RHL (32 və ya 64 bit Sistemə) uygun olan paketlər yarada bilər. İstifadəçiyə Virtual Sistem verilir və ona uygun olarag paketlər yıgılır, istifadəçinin kompyuterindəki ƏSdə heç bir dəyişiklik etməyərək. Həmdə Ruby(gem) və Python da yazılan programları sistemə uygun hazır paketləri yarada bilir. Məsələn, Gavrasm – Arduino(AtMega mikrokontrollerlər) üçün Assembler dilində yazılan programı Opensuseyə aid olan rpm paketi tapmag olmur. Onun, isxodniklər Paskal dilində yazıldıgı üçün, binarniki istifadə edərək, forumun köməyi ilə, OpenSuseyə yıgdım – link.İndi hər hansı user onun hazır rpm paketi yükləyıb rahat install edə bilər. Yəni, əsas məsələ odurki, rahat şəkildə hansısa programı hansısa paketə çevirmək Open Build Servisin köməyi ilə asantdır.

Düzdür, Open Build Service ilə və başka vasitərləri(məsələn tərcümə işləri, sevdiyi programlaşdırma dilimizdə azad program yazmagla) ilə Open Source dünyasını daha da zəngin və böyük olması bizdən, adi istifadəçilərdən asılıdır.

PS: Fikirlər, Düsseldorf kitabxanasında, GNU/Linux ƏSistemi olan kompyuterin arxasında oturarag irəli gəlmişdir.

31 May

Təzə Syntax Highlighter.

Worpdress üçün təzə Syntax Highlighter plaginə – Crayon Syntax Highlighter keçdim, ona görə blogda bəzi postlarda koddingin sintaksis səhvləri ola bilər. Bunula əlagədar üzr istəzirəm. Axırıncl 2 il bir iki dənə belə plagini dəyişdim. Hər dəyişmədən sonra plaginlər textə əlavə simvollar atır, o birisi plagin isə onu düzgün oxumur. Mən isə məcbur oluram bütün kodlara baxim və düzəlişlər aparım. Hələki aktual qalan postlarda çalışaram sintaksis səhvləri düzəldim.

27 Mar

Arduino və Ruby.

Axırki məndə bir Arduino istifadiəçisi oldum. Arduino UNOnu ələ keçirdim. Ruby isə ən xoşladigim programlaşdırma dili oldugu üçün, çalışdım onları bir bir ilə tanış edim. Lakin İnternetdə onların birgə istifadəsi üçün çoxdan və cür-bəcür gemlər, programmlar yazılıb. Məsələn onlardan çoxusunu burda tapmag olar – ruby and arduino. Bunlardan arduino_firmata gemi mənə ən yaxın görsəndi. Ona görədə onu istifade etdim. Esas tələblərimiz:
* Ruby
* Arduino İDE
* arduino_firmata gem

Ruby 2 versiya təzə çixdıgını görə elə onu işlədək.

[biotin@lenovo][~/arduino]% ruby -v 
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]

Arduino İDEni arduino saytından pulsuz yükləmək olar.
Arduino_firmata gemi isə belə install edək:

gem install arduino_firmata

Read More

08 Feb

Balaca səyahət..

Növbəti bəzi plannlarımı reallıga çevirmək üçün demək olarki tam 2 həftədirki Almaniyadayam.

Əvvəlcə uçuşdan bir iki kəlmə danışım. Azal-nan İstanbula uçdum. Bizdə nəsə həmişə deyim, yoxsa bəzi admlarda olurmu bilmirəm, Azərbaycanla baglı olan hər bir şeyə mənfi cəhətdən fikirləşilər, ən pisidə odurki bunlar özümüzkilərdi. Amma belə deyil. Azal şirkəti mənim xoşuma gəldi. Yox, pulsuz səhər yeməkə görə yox – uçuş, personalın səmimi gaygısna,təyyarənin rahat galxıb enməsi və bəzi başga xırda nyuanslara görə. İstanbulda, tamamilə başka bir ölkədə oldugumu bildim. Pegasusla uçdum. Yox, demək istəmirəm Pegasus şirkəti pisdir və sairə. Təklif olunan giymətə görə əladır, lakin elə bil təyyarədə yox – bazardasan. Stuardessaların elə bilki məgsədi alver etməkdir: sigaret, arag, konyak satışı ilə məşguldular. Müsbət cəhətləridə çoxdur, məsələn təzə təyyarələr, tam funksional web saytı(bilet almag, təyyarələrin gecikmə vaxtları və s.) Nə deyim, ən yaxşısı eşitmək yox, birdəfə uçmag lazımdır.

Həmşəki kimi heçnəyə vaxt çatdirmag olmur, lakin bir az vaxt tapıb gərara gəldim şəhəri gəzib şəkil çəkim və flikrə yerləşdirim. Əsasən Wuppertal və Düsseldorfda çəkdiyim şəkillərdir. Read More