Why Not ? a deep breath and let yourself fall out of life

30Ağu/080

Bir şeylere başlamak: PHP Nedir ?

Merhaba, Kitabımızın ilk serisine merhaba diyelim. Bu bölümde "PHP Nedir ?" sorusuna yanıt bulacağız.

PHP Nedir ?

  1. PHP Nedir ?
  2. Geçmiş: Merdivenin Basamakları
  3. Tarz: Syntax

1. PHP NEDİR ?

PHP bir betik dilidir. Aslen dinamik web siteleri geliştirmek için tasarlanmış, daha sonradan geliştiriplip bir command line interface (konsole kullanımı) eklenmiştir ve tek başına grafikal yazılımlar geliştirilebilir hale gelmiştir.

2. GEÇMİŞ: Merdivenin Basamakları ?

PHP ilk olarak Rasmus Lerdorf tarafından 1994 yılında Kişisel Web Sitesi için hazırlanmış C dilinde yazılmış bir CGI(Common Gateway Interface) araçlarından oluşmaktaydı. Lerdorf başlangıçta bu Kişisel Web Sayfası Araçlarını, Kişisel web sitesini yönetmek için kullandığı bir kısım perl script'i ile değiştirmek için hazırlamıştı. Daha sonra bi programcıkları, Form Interpreter(Form Yorumlayıcı) ları ile birleştirdi ve daha yüksek fonksiyonellik kazandırdı. Form Interpreter'ın birleşmesiile birlikte PHP/FI ilk çocuğu dünyaya gelmiş oldu. PHP/FI ye daha fazla C birleştirildi böylece veri tabanları ile haberleşme imkanı daha da yükseldi bu şekilde dinamik web siteleri üretebilmesinin önü de açılmış oldu.

PHP ilk olarak 8 Haziran 1995'te genel kullanıma açıldı. Duyuruya buradan bakabilir ilk versiyonun bir kopyasını buradan yükleyebilirsiniz PHP Tools: Versiyon 1'i buradan yükleyip inceleyebilirsiniz; Rasmus Lerdorf PHP deki bugların düzeltilmesi ve kodun geliştirilmesini sağladı. Sonrasında yayınlanan PHP Version 2 günümüzdeki kullanımına benzer bir yapıya sahiptir ve perl benzeri kullanım yapısına sahiptir ama çok daha basit ve az kod yazımı sağlamakta idi.

Zeev Suraski ve Andi Gutmans, 1997'de PHP'nin parserını tekrardan yazıp 1997'de PHP/FI 2 yi bütün beta yayınları PHP 3'ün ilk alfaları olaraktan da adlandıralabilir.

PHP 3, günümüzde kullandığımız PHP'nin kullanımına çok benzemektedir. PHP 3 Haziran 1998 yayınlanmıştır.

Kısa bir aradan sonra Suraski ve Gutmans 1999 yılında Zend Technologies'i kurdular ve PHP'nin çekirdeğini tekrardan yazmaya başladılar amaçları gelişmiş yazılımların performansını arttırmak ve daha fazla modulerlik katmaktı PHP 4 'ün temel taşları atılmaya başladın ve Zend Engine 1.0 ile birlikte PHP 4 22 Mayıs 2000 de yayınlandı. PHP 5 ise 13 Temmuz 2004'te Zend Engine II ile birlikte yayınlandı. PHP 5 gelişmiş Objeye Yönelik Programlama desteğiyle birlikte geldi.

Ağustos 2008 de PHP 4 Version 4.4.9 a eriştiğinde artık geliştirimi durduruldu. Ne bir güvenlik yaması nede başka bir yenilik yapılmayacak.

PHP 5 günümüzde stable olarak kullanılan ve geliştirimi devam eden PHP versiyonudur dolayısı ile derslerimizde PHP 5'i baz alarak devam edeceğiz. PHP 5 'in ne yazıkki tam olarak Unicode veya "multibyte strings" deskteği yoktur. Bu destek PHP 6  ile birlikte gelecektir.

3. Tarzı: Syntax

Syntax bir dilin yazım tarzıdır.  if () { } else {} bir syxtax tarzıdır dile göre değişkenlik gösterebilir misal if (): else: endif; gibi de olabilir dilin desteklediği yazım tarzlarına göre değişkenlik gösteririr.

Standart Tanımlama: <?php ?>

Yukarkida tanımlama sitili genel olarak kullanılır ve standart olarak kabul edilir. php.ini ile standart olarak gelir.

Kısa Tanımlama: <? ?>

Bu ise kısa tanımlamadır. Hızlı kullanım gereken yerlerde kullanılır örnek vermek gerekir ise <?php echo $y; ?> yerine <?= $y ?> yazabilirsiniz. İkiside işlevini yerine getirecektir. (echo Output işlevini görür yanı çıktı verir). php.ini ile birlikte standart olarak açık gelir.

Asp Sitili Tanımlama: <% %>

ASP kodlayan arkadaşlar bu tagı bilirler. ASP'den geçiş için rahat gelecektir. <?= ?> aynı şekilde <%= %> olarak burada da geçerlidir. php.ini ile birlikte standart olarak kapalı gelir.

PHP'nin genel olarak Vikipedia yardımı birazcık geçmişine göz attık. Çevirimde bir çok hata olduğunu kabule ediyorum :) Gelişitirimlere her zaman açığım. Birazcık SYNTAX üzerine yoğunlaşacağız çünkü önemli hususlardan bir tanesi. Bir çok insan yazım hatalarından dolayı saatlerini hatta günlerini, haftalarını harcayabiliyor.

Biraz kodlarımızı inceleyelim ve PHP'nin uygulamadaki halini görelim....

[sourcecode language="php"]
echo 'Selam
';
$mesaj = 'Selam';
echo $mesaj. "\n";
?>
[/sourcecode]

Yukarda çok basit bir PHP kodu görüyorsunuz. Akşama da yukarıdaki kodun harfi harfine açıklamasını yapacağım.
Sırayla açıklayalım bakalim.

  1. Satırda <?php tagımız ile PHP kodlarımızın başladığını berlittik.
  2. Satırda echo fonksiyonunu kullanarak ekrana çıktı aldık.
  3. Satırda mesajımızı bir değişkene (değişkeni bir sandık olarak düşünün)atadık.
  4. Satırda tekrardan echo komutunu kullanarak ekranımıza çıktı aldık

peki burada ki iki örnek arasındaki nedir ? İkiside aynı sonucu vermekte. İki örnek arasındaki fark syntax farkıdır.

  1. "echo" : bildiğiniz üzere çıktı almamızı sağlayan fonksiyonumuz.
  2. " ' " (Tek Tırnak): string tanımlayıcımız. Bir string 4 farklı yöntem kullanarak elle tanımlanabilir.
  3. " ; " (Çift Tırnak): Satırımızın bittiğini ifade eder. Tabikide bunu kullandığımız için bir sonraki satıra geçmek zorunda değiliz ama satırımızın bittiğini ifade eder. (Line Delimiter)  Örne vermek gerekir ise
    [sourcecode language="php"]
    echo 'Selam
    ';
    $mesaj = 'Selam'; echo $mesaj. "\n";
    ?>
    [/sourcecode]
    Örneğimizi yukarıdaki gibi de kullanabilirdik ama kodlarımızın daha anlaşılır olması için “line delimiter” gereklidir.
  4. 3." $ " : değişkenlerimizi tanımlamada kullanırız. Yani eğerki bir $ işareti görüyor iseniz bu %100 bir değişkeni ifade ediyordur.
  5. 4." . " (Nokta): İki adet ayrı obje'yi birleştirmek için kullanırız. Örnek vermek gerekir ise:
    [sourcecode language="php"]
    echo 'Selam
    ';
    $mesaj = 'Selam';
    $mesaj2 = ', naber';
    echo $mesaj. $mesaj2 . "\n";
    ?>
    [/sourcecode]

Gördüğünüz kodun çıktısı şu şekilde olacaktır:

Selam

Selam, naber

Bu bölümümüzü de bu şu an bitiriyoruz. Birazdan 2nci bölüm olan “Genel Script Bilgisi” ne başlayacağım.
Genel Script bilgisinde size degişken, tanımlayıcı, operatör, döngü nedir gibi şeylerin ne işe yaradığını anlatacağım
alt yapınızı oluşturacak olan Genel Scripting bilgisi üzerinde yoğuncana duracağız.

Ardından siz soracaksınız ben yanıtlayacağım.

Etiketler: , Yorum yok
30Ağu/081

Bir şeylere başlamak: yeni bir dil öğrenmek

Merhaba, bu gün umarım düne göre daha iyisinizdir. Bir önceki yazımda "Bir şeylere başlamadan önce" bir şeylere başlamak için gerekli olduğunu düşüklerimi yazmıştım. Daha sonra İbrahim ile olan konuşmamızda. Bana PHP Manual'ini buraya gerçirir isen çok güzel olur demişti fakat bu konuda yetersiz ve uzun zaman alacağını düşünüyorum PHP Manual'inin Türkçe'ye çevirilmesinn.

Bu husustan dolayı aklımda şu an en iyi bildiğim dil olan PHP'yi başlangıç seviyesine kadar getirecek dersleri buraya not alacağım. Gerektiğinde video ilede size destek olacağım.

Hazırlık:

Hiç bir şey kurmadan önce, hiç bir şeye başlamadan önce kendinizi hazırlamalısınız. Hiç bir zaman bir şey kolay değildir ama zorda değildir. Öncelik ile kendinize bir ajanda veya karalamak için bir şeyler alın benim bir A4 lerimi tuttrabildiğim bir zımıbırtım mevcut. Önceden HTML / XHTML bilginizin olması size büyük fayda sağlayacaktır. PHP Manual'ini takip ederekten derslerimize başlıyoruz.

Başlangıç:

  1. PHP Nedir ?
    1. PHP Nedir ?
    2. Geçmiş: Merdivenin Basamakları
    3. Tarz: Syntax
  2. Genel Scripting bilgisi
  3. PHP'nin bilgisayara kurulması
    1. Server Nedir ?
    2. Linux
    3. Windows
    4. Mac
  4. IDE
    1. IDE Nedir ?
    2. IDE Seçimi
  5. PHP Syntax
  6. Kodlama Standartları Üzerine Kısaca
  7. PHP'de Türler (Types)
  8. PHP'de Tanımlayıcılar (Tanımlayıcılar)
  9. PHP'de Değişkenler (Variables)
  10. PHP'de Sabitler (Constants)
  11. PHP'de İfadeler (Expressions)
  12. PHP'de Operatörler (Operators)
  13. PHP'de Kontrol Yapısı (Control Structures)
  14. PHP'de Fonksiyonlar (Functions)

Aşağıdaki gün ve gün aşağıdaki derslerimize başlayacağız. Bu gün şu an sabahın 7 si olduğu için ben yatağıma gidiyorum :)

Kullanılacak Kaynakça: php.net, Viki, W3Schools

29Ağu/081

Bir şeylere başlamadan önce:

Biz programcılar yeni bir dil öğreneceğimiz de öncelikle syntaxlara bakarız, ardından tanımlayıcılar, operatörler, fonksiyonlar diye uzar gider ama öncelikle ilgili programlama dilinin ana temel taşları hakkında bilgi sahibi oluruz. Genel olarak sıkıcı olan, bir şeyler üretmeden geçen sıkıcı çalışma zamanlarıdır. Bu sebeble "uygulamada öğrenmeyi seviyorum" cümlesiyle birlikte benden ders almaya gelen bir çok insan oldu. Çoğu ise öncelik ile teoride öğrendi önce izledi öğrendi, uyguladı ve öğrendi.

Yeni, bilgisayar konusunda programlama ya başlayan insanların genel olarak nereden başlayacaklarını bilememeleri, forumlarda ve benzeri yerlerdeki insanların direkt kodları ellerine sunmaları ve benzeri şeyler kişilerin öğrenme sürecini hem yükseltti hemde zorlaştırdı. Yeni başlayan insanlar ise heveslerinden dolayı Kalemi kullanmayı bilmeden, alfabeyi yazmaya çalıştılar. Değişkenin tam anlamını bilmeden objeleri kullanmaya başladılar.

Her zaman için bir şey kullanmadan önce el kitabına bakın, bir TV olabilir, bir araba veya bir fotoğraf makinası herhangi bir şey size daha fazla bilgi katacaktır o cihaz ve konu hakkında.

Bu noktada bir kaç tavsiyem mevcut:

  1. İngilizce'nizi geliştirin: İngilizce Internet'in temel yapılarından biri olmuş durumda, tabiki "Blog" yerine "Günce" demeyi tercih ediyorum ama programlama dilinizde If yerine Eğer kullanamıyoruz veya foreach yerine herbiriiçin gibi bir kullanım tarzı yok hiç bir dilde ve her dilin Manual'i genel olarak İngilizce, Türkçe'ye çevirimiz Mevcut olsa bile güncel değil.
  2. El Kitaplarını okuyun: El Kitabı(Manual) sizin birincil yol göstereninizdir. Her şeyi sorabilir, her fonksiyon, her türlü tanımlama ve yöntem hakkında bilgi sahibi olabilirsiniz.
  3. El Kitablarındaki yorumları okuyun: El Kitablarındaki yorumlar size bazı zamanlarda bulamadığınız yöntemleri verecektir, Munuallere dökümante edilmemiş kullanım biçimleri ve benzeri yöntemleri size sunacaktır.
  4. Viki Gezinin: İlgili terimlerin vikilerini gezin Interface, Abstract, Final, Public, Protected gibi terimlerin ne için kullanıldığı hakkında bilgi edinebilirsiniz.
  5. IDE Kullanın: Notepad ile yazmış olduğunuz, kodlarda Debug(hata ayıklama) yapmanız gerçekten uzun zaman alacaktır, çeşitli IDE ler kullanabilirsiniz, ben PHP için Zend Studio For Eclipse kullanmaktayım daha öncesinde onun babası olan PDT kullanıyordum. Hangi dili öğrenmek istiyorsanız O dilde en çok tercih edilen IDE 'yi kullanmak zorunda değilsiniz, sizin için gerekli olanı kullanın.
  6. Çok çalışın, Yeni şeyler deneyin: Şu an ki öğrencim olan İbrahim Erol'un iletisinde yazan iletiyi çok sevdim sizin ile paylaşmak istiyorum:

Bilginin Efendisi Olabilmek İçin, Çalışmanın Esiri Olmak Gerekir.

Eğerki bir programlama dilini öğrenmek istiyorsanız temelinizi çok sağlam atın, bir bina gibi veya dans etmek gibi. Dans'ta temel adım çok önemlidir. Temel adımızı ne kadar iyi atarsanız ve ne kadar çok doğru temel adım üzerine çalışır iseniz o kadar iyi olursunuz.

Teşekkürler,

Murat BEŞER

26Ağu/080

ATI Ekran kartı ile dual screen görüntü (Linux)

Evet, Evet... Biliyorum biraz Linux'mu dermiş gibi duydum ama evet Linux kullanıyorum. (Benim gibi bir player neden Linux kullanır ki ?) Kullanır çünkü Windows arkadaşımızdan daha rahat geliyor kod yazarken :) Neyse sorunumuza gelelim. 1 kaç ay önce 19' lik monitörümü anneme vermiştim fakat annemin bilgisayarı bir türlü toplanamadı, toplandı fakat vakit bulup kullanamadı neyse bende monitörümü geri aldım...

Dolayısı ile dual screen işi ATI'lerde biraz Çin işkencesi olabiliyor. Biraz araştırma (araştırma 2) yaptıktan sonra fark ettim ki artık hiçte o kadar işkence değil.

Sil baştan:

Öncelik ile yapmanız gerekenlerden birincisi sisteminizdeki tüm ATI ile ilgili driverları kaldırın. (Eskidir meskidir) eğerki eski değilse bu adımları atlayın.

/usr/share/ati/

altında "ls" çektiğiniz zaman göreceksiniz ki bir uninstall tool u arada sizi bekliyor.Onu kullanın silin sonra ATI driverlarını kurup.

Big Desktop : // Büyük geniş bir masa üstü

aticonfig --dtop=horizontal --overlay-on=1

Yazar iseniz gayet güzel bir big desktop veriyor. Fakat bu olay bende tam istediğim sonucu vermedi o yüzden. Aşağıdaki xorg.conf dosyası değişikliklerini kendi dosyama uyguladım:

Section "Monitor"
	Identifier   "aticonfig-Monitor[0]"
	Option	    "VendorName" "ATI Proprietary Driver"
	Option	    "ModelName" "Generic Autodetecting Monitor"
	Option	    "DPMS" "true"
EndSection

Section "Device"
	Identifier  "aticonfig-Device[0]"
	Driver      "fglrx"
	Option	    "DesktopSetup" "horizontal"
	BusID       "PCI:1:0:0"
EndSection

Section "Screen"
	Identifier "aticonfig-Screen[0]"
	Device     "aticonfig-Device[0]"
	Monitor    "aticonfig-Monitor[0]"
	DefaultDepth     24
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection

Section "DRI"
	Group        0
	Mode         0666
EndSection

Section "ServerLayout"
	Identifier     "Default Layout"
	Screen      0  "aticonfig-Screen[0]" 0 0
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

2 Adet Masa Üstü:

aticonfig --initial=dual-head --screen-layout=above

Bu arkadaş ise bize alt alta 2 adet masa üstü veriyor, --screen-layout parametresiniz biraz inceleyin isterseniz.

Sonuç: Daha önceki kurulumlarda bir kaç günümü yiyen bu olay 1 saatimi yedi. İleri ki zamanlarda Linux'umuzun bu tarz konularada sunucular kadar özen göstermesi.

Etiketler: , , , Yorum yok
22Ağu/080

Bir projeyi doğurmak 1. adım

Bu ilk makalem olacağı için bir hata edersem herkesten affola...

Bir şeyler yapmak istiyorsunuz, bir web sitesi ama ne olması gerektiğine karar veremiyorsunuz. Aklınızın içinde bir sürü düşünce dolanıp duruyor hangisini eklesiniz hangisini yapsanız. Oda olsa buda olsa. Fakat bir projeyi genellik ile zamanında bitiremeyiz. Orası kötü gözükür burası kötü gözükür.

Peki bizim ağzımızın sularının aktığı Google, Linux türevleri veya otomabillerin ne şekilde başarıya ulaştılar projelerini ne şekilde geliştirdiler. Elbetteki yavaş yavaş çocuklarını yavaş yavaş büyüttüler. Google'ın garajını, Linus Torvalds'ın odasını bilmeyen yoktur. Peki ya otomobillerin ilk günlerine ne demeli ? Bu sayfada biraz inceleme yaparsanız veya Google da araştırma göreceksiniz ki otobiller bile bir anda ortaya çıkmamış dolayısıyla hiçbir proje tek seferde doruğa ulaşmamıştır. Benimde zamanında bilmediğim için çok burnumun sürttüğü doğrudur.

Peki başarılı bir projenin geliştirilmesi için ne gerekmektedir ? Mehmet Doğan hocamızın “Proje Tasarımı” adlı yazısında da okuduğumuz (okuyun yani) göreceksiniz ki doğa ve geçmiş bize bu konuda çok güzel dersler vermekte. Makaledeki örneklerden en çok dikkatimi çeken ise Kaliforniya/San Jose 'deki 38 yılda tamamlanmış olan Winchester Malikanesi. Projenin oluşturumu sürecindeki plansızlık evi yaptıran kişinin projenin bitiminde ne elde etmek istediğini bilmemesi ve projenin dökümantasyonunun tam olarak oluştururulmamış olması karşımıza bu tarz sonuçlar çıkarabiliyor ?

"Satın alındığında 8 odalık çiftlik evi, bittiğinde birçok bölümü kullanılmaz olan 160 odalık devasa bir yapı haline gelmiş bu basit tasarım ve inşaat projesi. Harcanan paraya, yaratıcılığa, enerjiye ve zamana rağmen..."

Projelerimizi oluşturur iken bir kalem kağıt alıp bolcana zırvalamakta fayda var tasarımlarımızı hazırlar iken, veri tabanlarımızı oluşturur iken, screencast lerimizi hazırlar iken. Misal bu makaleyi yazarken bile bir sürü şey karaladım ilk başlangıçta karaladıklarımdan bir kaçı :

Gördüğünüz üzere başlıkları düşünmüşüm biraz zırvlamışım....

İlerleyen zamanlarda yazıya devam edeceğim...