31 May

Sinatra və Ruby.

Ruby on Rail möhtəşəm bir Web Frameworkdır. O Ruby programlaşdırma dilinin güclü və effektiv tərəflərini isitfade edib gısa bir zamanda web saytları hazırlamag imkan verir. Lakin Ruby ilə ancag o yox, başka bir Frameworkda işləyir. Söhbət indi Sinatra gedəcək. Qısa, lakonik web applikeyşnları yaratmag üçün ideal bir instrumentdir. Desəm ki Ruby nin en güclü GUİ lərdən biridir – yanılmaram. Bəli, web GUİ. İndiki zaman web aplikeyşnlar digər GUİləri sıxışdırır. Programı yükləyib install eləmə vaxtları keçib gedəcək. Lazım olan şeylər isə ancag Brouser və İnternetdir. Bunlar isə indi hamıda var.

Sinatra barədə bir dəfə blogumda yazmışdım. Məsələn bu saytı əskərlikdən əvvəl yazmışdım – “Небольшое веб приложение”. Yada bu programı – Sinatra ilə brauserdən Arduinonu idarə etməsi.

Bir neçə gün Procam Hesablama Cədvəli ilə tanış oldum. Bu hesablama cədvəli Tibbdə istifadə olunur və bir neçə bədən faktorları cəmləyib İnfarktın gələcəkdə yaranması barədə məlumat verir. Bir neçə parametr daxildir, lakin hər dəfə onlarin hesablaması vaxt aparır. Ona görə gərara gəldim ki bir web program yazım bunu hesablasın. Sinatra bunun üçün əla yaraşır. Esas kod belə alındı – rb file : Read More

28 Aug

Java və PDF.

Bir neçə gün əvvəl, dostum sənədləri – CV, Diplom, tərcümələri yıgıb klinikaya göndərirdi. Lakin onlardan gələn şərt o idiki bütün sənədlər bir pdf faylda olmalıdır. Dostumda isə onlar bir neçə ayrı-ayrı pdf fayllarda idi. Məsələ elə program yazmag idi ki o iki pdf faylı bir birinə birləşdirsin və nəticədə bir pdf alınsın.

Bu ara boş vaxtım oldugu üçün bir ay fikirləşdim. Təzə öyrəndiyim Java programlaşdırma biliklərimi yoxlamaq üçün əla fürsət idi. İnternetdə axtarış verib pdf ile işləyən java library, onların istifadə gaydaları oxudugdan sonra – gərara gəldim ki iTextpdf library işlədim. Həmdə resenziyaları pis deyildi.

Ümumiyətlə iTextdf, standart FileChooser və GUİ üçün Swing işlətdim. Versiya 02 də GUI Netbeans/Intellij Idea ilə düzəldi. Versiya 01 dəki sadə kod : Read More

17 Jul

Der “Creator” hat seine Arbeitsplatz gezeigt.

Der creator Linux Kernel – Linus Torwalds hat vor  Linuxcon in Chicago seine Arbeitsplatz geziegt.  Linus liebt auf ihrem Laufband zu spazieren und gleichzeitg zu programmiern. Er ihn  – einen Zombie DESC” :) Dies und vieles mehr auf Video on Youtube.

https://www.youtube.com/watch?v=HSgUPqygAww

 

Ps: Leider was für eine Distributiv benutz er habe ich nicht erkennt.

22 Dec

Wieder mit OpenSuse.

Nach meiner Tauschung des Notebooks habe ich jetz Ultrabook von Acer – Acer Aspire S3. Ja, sicher ein alter Model aber mit Core i5-3317 und sehr leicht, was für mich besonders wichtig ist. Endlich habe ich mich mit Broadcom Wlan Driver verabschiedet. OpenSuse 13.1 funktioniert sehr gut und ohne Problem mit Driver. Auch möchte ich sagen, das OpenSuse stheht bei mir auf SSD und mit Start “brennt” sich so schnell wie es möglich ist – ungefähr 3 sek für die Login und plus 3-4 Sekunden für KDE. Das ist super. Und unmöglich – 2 sek für die Ausschaltung. Jetz meine lieblingste Programmierungssprache – Ruby ist auch im OpenSuse, weil YAST vollständig auf Ruby umgeschrieben wurde.
PS: Jetz habe ich Windows 8 auch =)

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

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.