02 Feb

HTML kodları PDF-ə çevirək

Bəzən elə olur ki, internetdə maraqlı bir yazı ilə qarşılaşırıq. Uzun olduğundanmı, vaxtımızın az olduğundanmı, kağızdan oxumağı sevdiyimizdənmi və ya başqa səbəbdən yazını çap etməli oluruq. Bu zaman yazıların, şəkillərin ora-bura qaçması, saytın yazıya aid olmayan ağır qrafikası və s. bizi məcbur edir ki, biz yazını saytdan çıxarıb digər programların köməyi ilə çap edək. Çap üçün universal bir format sayılan PDF-də isə bu cür məsələlər olumur. PDF səhifə göründüyü kimi çap olunur.

Ona gör də HTML kodların birbaşa PDF-ə çevirilməsi ilə bağlı internetdə bir qədər araşdırma etdikdən sonra ən sadə və istifadəsində elə də çatışmazlıq olmayan bir yolu sizlərlə paylaşmaq qərarına gəldim. Read More

02 Jan

Ubuntu terminalı üçün əmrlər

Ubuntunun rahat interfeysi onun bir terminal ağırlıqlı əməliyyat sistemi olmamasından xəbər versə də, terminalı siyahıdan çıxarmamalıyıq. Əmrlər çoxdur və hamısı yadda qalmır. Bu postu həm özümə, həm də sizlərə bir arayış kimi yazmağa qərar verdim.

Mənim linuxlarda elə ən çox diqqətimi cəlb edən terminaldır. Əmrləri qrafik interfeyslə deyil, terminal komandaları ilə verməyin ayrı ləzzəti var. Belə olanda özümü ƏS-nin içində, onunla «qucaqlaşmış» kimi hiss edirəm =)

Sözü çox uzatmadan keçək bəzi əmrlərə. Ən əsas olandan başlayaq. Read More

01 Jan

Ubuntu 11.10-da klassik GNOME necə qaytaraq?

Əvvəlcədən bildirildiyi kimi, Ubuntu 11.10-da klassik Gnome yox əvəzində Unity 3D və ya bir qədər zəif konfigurasiya üçün Unity 2D var.

Ubuntunun yeni götünüşü haqqında onu deyim ki, ilk andan çox xoşuma geldi, problemsiz qurulma, sadə görünüş, rahat interfeys. Xoşuma gəlməyən sadəcə Gnome3-dən daha çox planşet qoxusu gəlir və Windowsda öyrəşdiyim — alt panelin olmaması idi. Hər dəfə Alt+Tab istifadə eləmək o qədər də asan gəlmirdi mənə. Aktiv olmayan pəncərələrsə sol tərəfdə gizlənir, bir qədər narahatdır. Ona görə klassik Gnome qaytarmaq qərarına gəldim. Read More

15 Dec

Python və Djangonun Windows əməliyyat sistemlərinə qurulması

Python (az. Piton/ en. Payton) dünyada günü-gündən məşhurlaşmaqda olan bir proqramlaşdırma dilidir. Pythonun üstünlükərindən və ya digər desktop proqramlaşdırma dilləri ilə müqaisəsindən danışmayacam. Bu haqda Python/Django tagı altında yazılar yazmışıq (rusca).

Pythonun ən məşhur web framework Djangonu windows əməliyyat sisteminə necə asan və tez qurmaq olar, bu haqda danışaq.

  • 1. Python 2.7.2 (2.4 və ondan sonrakı versiyalar Djangonu dəstəkləyir. Bu postu yazarkən 2.x.x versiyasından ən sonuncu 2.7.2 idi (15.3Mb)). Yükləmə və quraşdırma prosesi çox sadədir. Fayllar C:Python27 qovluğunda olur. Programlarımız arasına yeni əlavə olunmuş IDLE (Python GUI) açırıq. Quraşdırdığımız python versiyası əks olunan pəncərə açıldısa, deməli hər şey qaydasındadır. Davam edək.
  • Read More

25 Nov

Daimi ifadələr (Regular expressions)

Sətrdə axtarış etmək üçün əksər programlaşdırma dillərində olduğu kimi, PHP-də də daimi ifadələrdən geniş istifadə olunur. İngilis dilində Regular expression olan bu söz birləşməsini “daimi ifadə” kimi tərcümə etdim. Əgər dilimizdə başqa cür səslənirsə və ya daha ideal variantını bilirsinizsə eşitmək maraqlı olardı.

Daimi ifadələrin köməyi ilə cari sətrdə olan və verilmiş qəlibə (şablona) uyğun gələn altsətri tapmaq və ya bu sətrdə axtarılan altsətrin mövcud olub olmamasını araşdırmaq mümkündür.

Daimi ifadələrin bir neçə tətbiq forması və ya dialekti mövcuddur. Biz əsasən daha çox inkişaf etmiş və özünə geniş tətbiq sahəsi tapmış Perl uyğunluqlu daimi ifadələrdən danışacayıq.

Belə ki, hazırda PHP-nin dəstəklədiyi POSİX dialekti növbəti distributivə (PHP 6) əlavə olunmayacaq. Ona görə Perl uyğunluqlu dialektə fikir versək daha əhəmiyyətli olar.

Read More

17 Oct

Cədvəllər indi daha səliqəli

Hazırda müxtəlif saytlarda çoxlu sayda cədvəl görmək mümkündür. İdman, iqtisadiyyat, statistika, forumlar və s. digər formatlı saytlarda cədvəllərdən geniş istifadə edirik.

Bəs cədvəlimizi necə gözoxşayan formada tərtib etmək olar? CSS-in köməkliyi ilə kifayət qədər səliqəli və maraqlı dizayna malik cədvəllər qurmaq mümkündür. Bu haqda postumun ikinci hissəsində daha ətraflı danışmaq istəyirəm. Hələ ki, postu yazmağımın əsas səbəbi olan – strukturu daha öncədən bilinməyən, dinamik cədvəllərə zolaqlı (zebra effekti) görünüş vermək haqda danışaq.

Demək istədiyimi daha aydın çatdırmaq üçün misal çəkim. Məsələn bizim elə cədvəlimiz olacaq ki, onun başlıq hissəsi (bizdə “header”) həmişə eyni qalacaq. Ancaq daha sonrakı aşağı hissəsi isə, bazadan və ya mənim misalımda olduğu kimi massivdən çağırılacaq.

Sətrin nömrəsinə görə fon rəngini təyin etmə mexanizmini aşağıdakı kodda şərh şəklində qeyd etmişəm.

Read More

29 Sep

Twitter postlarımızı səhifəmizə çağıraq

Sayt hazırlayarkən bizə twitter mikorblogumuzdakı son bir neçə twiti lent şəklində yayımlamaq lazım gələ bilər. Bunun üçün müxtəlif üsullar mövcuddur. WordPress-lə işləyirsinizsə müxtəlif plug-in-lər köməyinizə gələ bilər. Amma hər şeyi öz əlləri ilə yazmaq istəyənlər üçün qısa amma yararlı bir post olacağını düşünürəm. İdeya habr-kı PHP blogunda qarşıma çıxdı və sizlərlə öz dilimizdə paylaşmaq istədim.

Twitter-in istifadəçi üçün ayırdığı RSS kanalından istifadə edərək postlarımızı qəbul edək.

İlk öncə istifadəçi haqda informasiya əldə edək. Bizə bu informasiya içində istifadəçinin id nömrəsi, avatarı, web sayt, və s. lazım ola bilər. Bunun üçün köməyimizə XML fayl gələcək.

Onu simplexml_load_file() funksiyasının köməkliyi ilə təhlil edə bilərik:

1
2
3
$username = 'hemsherih';
$user_info = simplexml_load_file('http://twitter.com/users/show.xml?screen_name='.$username);
$user_id = $user_info[0]->id; // id əvəzinə profile_image_url və ya location və s. yazmaq da olar

Read More

20 Sep

PHP-də sadə alış-veriş zənbili

Bu yaxınlarda aldığım sayt sifarişlərinin birində sadələşdirilmiş elektron mağazanın olması istənmişdi. Daha öncə bu barədə nə düşünmüşdüm, nə də ki, bir elektron mağazanın hansı prinsiplərlə işlədiyi haqda məlumatım var idi. İnternetdə bir qədər araşdırma apardım, elə də dəyərli məlumat tapa bilmədim, amma ingilisdilli bəzi saytlardan bəhrələndim… Sözü uzatmadan keçək mətləbə.

Biz istəyirik ki, bizim kitab mağazamızdakı məhsulların siyahısını, qiymətlərini görək, və onu zənbilə əlavə edə bilək. “Əlavə et” düyməsini basdıqda birbaşa zənbilə keçid alaq və oradakı məhsulların siyahısı, sayı qiyməti və ümumi borcumuzu gorə bilək.

Başlayaq bazamızdan.

1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE books (
id int(6) unsigned NOT NULL auto_increment,
title varchar(100) NOT NULL default '',
author varchar(100) NOT NULL default '',
price decimal(3,2) NOT NULL default '0.00',
PRIMARY KEY (id)
) TYPE=MyISAM;
 
INSERT INTO books VALUES (1, 'Əli və Nino', 'Qurban Səid', '24.99');
INSERT INTO books VALUES (2, 'Əlkimyaçı', 'Paulo Koelyo', '27.99');
INSERT INTO books VALUES (3, 'Boz atın belində', 'Cəlal Bərgüşad', '14.99');

Read More

08 May

PHP-dən tapşırıqlar (II hissə)

Növbəti – 3-cü və 4cü məsələləri də sizə təqdim edirəm.

3. Bizim konkret tekstimiz var. Və verilmiş hər hansı bir sözü həmin tekstdə tapıb sarı fona almaq lazımdır. Məsələn “Bu bizim çoxsözlü tekstimiz olsun” axtarılan söz isə “çox” sözü olsun. Nəticə isə aşağıdakı kimi olmalıdır - “Bu bizim çoxsözlü tekstimiz olsun”.

4. Bu çalışma bir qədər mürəkkəbdir. Öz şifrələnmə metodumuzu yazmalıyıq. Sözdəki simvolları başqa simvollarla əvəz etmə yolu ilə (Məsələn A=>T, C=>R və s.). Üç funksiya yazılmalıdır. Birinci funksiya yeni əlifba forması yaratmalıdır. İkinci birinciyə əsasən hər hansı bir sözü şifrələməli, üçüncü isə əks prosesi – şifrələnmiş sözün geri açılması işini görməlidir.

Təcrübəlilərdən xahişim, məsələləri tam həll etməyə vaxtınız olmasa belə, yeni başlayan həvəskarlara yol göstərsəniz çox yaxşı olar.

29 Apr

PHP-dən tapşırıqlar (I hissə)

PHP-ni yeni öyrənərkən bəzən nəzəri bilikləri praktika ilə möhkəmləndirməyə ehtiyac yaranır. Amma internetde ele də çox çalışmalar tapmaq olmur. Sörfing zamanı bəzi məsələrə, çalışmalara rast gəldim və onları tərcümə edərək həftəyə ən azı bir məsələ yerləşdirmək istəyirəm. Həlli üsullarını isə şərh şəklində sizlərdən gözləyirəm. Aktiv olmağınızı arzu edirəm. PHP-də yazan tanışlarınız varsa onlarında bu məsələlərə fikirlərini bildirməyi təklif etməyinizi xahiş edərək ilk iki məsələni sizin beyin fırtınanızın qarşısına qoyuram. :) Uğurlar.

Read More