İyi Bir Arayüz Oluşturmak İçin Dikkat Edilmesi Gerekenler

Bu yazı http://www.delphiturkiye.com/arayuz.htm‘den alıntıdır.

GERÇEK DÜNYA

* Programcılar genelde arayüz dizayn etmekten pek hoşlanmazlar. Ancak arayüz dizaynı kolay ve eğlenceli bir iştir. Yaptığınız işin neticesini anında ekranda görebilirsiniz.

* Çoğu programcı arayüz dizaynının grafik yetenek isteyen bir olay olduğunu, bundan dolayı arayüz dizaynı yapamayacağını düşünür. Halbuki olay çok basittir. İşin temeli basit bir takım kurallar belirleyip, bunları tüm programda uygulamaktır. Burada da bunu yapacağız.

* Kontrol edemedikleri problemler insanları sinirlendirir ve stres yapar. Bunlar küçük problemler olsa bile. Mesela klavyenizin boşluk tuşunun ara sıra çalışmadığını, 3-4 kez bastığınızda çalıştığını düşünün. Bu olay bir süre sonra sizi sinirlendirmeye, stres yapmaya başlayacaktır.

Kullanıcılarda bu şekildedir. Programın arayüzünü beğenmezlerse, programı kontrol edemeyecekleri hissine kapılırlar, programı suçlarlar. Ancak arayüzü beğenmişlerse, istedikleri gibi çalışıyor ise kendilerini mutlu hissederler ve programı överler. Bir arayüz üstadının da dediği gibi en güzel dizayn edilmiş arayüz, kullanıcının programın nasıl davranmasını istiyorsa öyle davranan programdır.

* Kullanıcılar dokümanları ve çıkan mesajları okumazlar(!) ve kullanıcıların çalışma tarzını değiştirmek son derece zordur.

* Peki bu kadar kullanıcı var, onların çalışma tarzını nasıl bileceğiz? Bunun en güzel yöntemi onlara sormak. Zaten her programcı aynı zamanda bir kullanıcı olduğundan, beğendiği hoşuna giden arayüzler vardır. Ayrıca programı kullanan veya çevrenizdeki daha az profesyonel insanlara açıkça sorarak kullanıcıların çalışma tarzları hakkında fikir edinebilirsiniz.

Burada en önemli noktalardan biri kullanıcılardan feedback (geridönüşüm) almaktır. Eğer programda can sıkıcı, stres yapıcı bir arayüz hatası var ise kullanıcı bundan şikayet edecek ve bu durumun çözülmesini isteyecektir. Kullanıcının program vasıtasıyla size ulaşabilmesi için gerekli düzenlemeler yapılmalıdır. Programın Yardım menüsünde ve Program Hakkında kısmında kullanıcının size ulaşabileceği iletişim araçları belirtilmelidir. Bunlardan ilk olarak e-maile ağırlık verilmelidir. E-mail haberleşmesi hem maliyet olarak daha ucuz, hem de içine ekran görüntüsü de eklenebileceğinden çok daha açıklayıcı olmaktadır.

* Programın arayüzünü test etmek için 5-6 kullanıcı kafi gelecektir. Sonrasında her kullanıcının benzer şeyler söylediğini göreceksiniz.

* Kullanıcıya seçenek sunmalısınız, ancak bazen kullanıcı bunlara dikkat etmez veya dikkat edecek durumda değildir. Bu durumlarda bir seçeneğiniz olmalı. Yani kullanıcıya bir seçenek sunacaksanız, bunun gerçekten gerekli olması lazımdır. Mümkün olduğu kadar program kullanımı sırasında kullanıcının seçim yapma olayını minimuma indirmelisiniz.

Bu tüm seçenekleri iptal edin manasına gelmez. Mesela her kullanıcı programın görünüşünü değiştirmeyi, masaüstüne farklı bir resim koymayı veya Winamp’ın skinlerini değiştirmeyi sever.

* Bazen kullanıcı bir işin yapılmasını ister ancak nasıl yapılacağı hakkında hiçbir fikri yoktur [yabancı gelmedi değil mi :) ] Bu durumda genel kabuller veya gerçek yaşamdan uyarlamalar iyi olacaktır. Mesela zoom olayı yapmak istiyorsunuz, bu durumda ekrana bir mercek resmi koyarsanız, gerçek hayatta mercek bu işler için kullanıldığı için kullanıcı kolayca ne işe yaradığını kavrayacaktır.

* Eğer nesneleri iyi dizayn etmişseniz, bakıldığı zaman nasıl çalışacağı anlaşılıyor olması lazım.

* Program arayüzünü tasarlarken kullanıcıların alışkanlıklarını da göz önünde bulundurmak gerekir. Şu anda çoğu program benzer tarzda çalışmaktadır ve kullanıcı sizin programınızdan da aynı davranışları bekler. Mesela Windows’ta Ctrl+X, Ctrl+C ve Ctrl+V, kes – kopyala – yapıştır için kullanılır ve bu genel bir standarttır. Siz eğer bu işlemler için farklı tuşlar atarsanız, ciddi kullanım problemleriyle karşılaşabilirsiniz.

* Arayüz tasarlarken mümkün olduğu kadar kullanıcıların çokça kullandığı popüler programlara (Word, Excel vs.) benzer yapıları kullanmak daha iyi olacaktır. Özellikle Microsoft arayüz geliştirme çalışmaları için milyonlarca insandan feedback almakta, bu iş için milyonlarca $ harcamaktadır. Genelde kullanıcılar bu arayüze alışık oldukları için, sizin programınızdan da aynı davranışları bekleyeceklerdir. Ayrıca kullanıcı bu arayüze alışık olduğundan kolayca kullanmaya başlayabilecek, eğitim masrafları ve zamanı minimuma inecektir.

* Standart Windows bileşenlerini (EditBox) kullanmak yerine yenilerini oluşturmayı denemeyin. Bu hem bir sürü sıkıntıyı beraberinde getirir, hem de kullanıcılar alışık oldukları tarzdan farklı buldukları için kullanım problemleri çıkar.

* Arayüz dizayn ederken şu iki prensibi asla unutmayın:

  • Kullanıcılar asla dokümanları okumazlar
  • Aslında kullanıcılar hiçbir şeyi okumazlar, okuyabilseler bile okumak istemezler.

Yani programları kullanıcının dokümanları okumadan kullanabileceği şekilde yapmak gereklidir!

Aslında kullanıcılar hiçbir şeyi okumazlar demiştik. Kullanıcılar ekrana gelen hata mesajlarını ve diğer bilgileri de okumazlar. Bunları okunma şansını artırmak için cümleleri kısa, net ve basit bir şekilde yapmalısınız. Ayrıca işlem yaparken kullanıcının bu dailoglara okumadan bastığının farkında olup ona göre davranmalısınız. Mesela bir kayıt silme işlemi sırasında varsayılan buton Evet ise kullanıcı yanlış bir işlem yapıyorsa, okumadan Enter tuşuna veya boşluk tuşuna bastığı için kayıt silinecektir. Bu durumda varsayılan butonun Hayır olması bu hatanın önüne geçecektir.

* Birçok kullanıcının halen bilgisayardan korktuğunu, çekindiğini unutmayın. Mesajları uzatmak yerine kısa ve öz yazmaya gayret edin. Mesela kullanıcıdan programdan çıkmadan önce bir onay almak istiyorsunuz. Eğer “Programımızı kullandığınız için teşekkür ederiz, Programdan çıkmak istediğinizden emin misiniz?” gibi bir ifade kullanmak yerine “Programdan çıkmak istiyor musunuz?” gibi daha kısa ve net bir şekilde istediğiniz onayı almış olursunuz. Önceki mesajdaki teşekkür ibaresi daha kibar gözükse bile gereksiz bir ibaredir.

* Kullanıcılar fareyi çok iyi kullanamazlar. Bunun birçok nedeni olabilir : masaları çok dağınıktır, farelerinde bir problem vardır, notebook kullanıyorlardır vs. Bunun için kullanıcıya fare ile yapılan işlemlerin tamamını klavye ile yapma imkanı vermelisin. Ayrıca klavyeye alışan kullanıcılar, klavye ile fare arasında git-gel yapmadıkları için işlemleri çok daha hızlı yapabilmektedirler.

* Bazı şeyleri kullanıcının hatırlamasını beklemek yerine, bilgisayarın hatırlamasını sağlamalısınız. Mesela kullanıcı kaydettiği bir resmi açacak, kullanıcıya resmi ismi ile seçmek yerine, resimlerin küçük görüntüleri (thumbnail) ile seçtirirseniz, istediği resmi seçmesi çok daha kolay olacaktır.

* Kullanıcılar doküman okumazlar, fare kullanamazlar, her şeyi hatırlamazlar, o zaman bunlar aptal diye düşünebilirsiniz. Hayır aptal değillerdir, ancak herkes sizin kadar bir bilgisayar geçmişine ve tecrübesine sahip olmayabilir. Onun için programları aptalların bile kullanabileceği kadar kolay yapmalısınız. En ufak bir yararlı değişikliğin bile müşterileri ne kadar sevindirdiğine şaşıracaksınız.

* Programları yaparken activity-based (faaliyet tabanlı) tarzda yazmak en uygun çözümdür.

Mesela Tebrik kartı hazırlayıp gönderen bir program yazıyorsunuz. Boş bir kart açıp, buna yazı ve resim ekleyerek bir kart oluşturup, bunu göndertmek bir çözüm ancak kullanıcıya şöyle bir liste çıkarıp yaptırmak daha iyi olacaktır.

Nasıl bir kart istiyorsunuz?

- Doğum günü kartı
- Yıldönümü kartı
- Parti daveti kartı
- Boş bir kart ile başla

Bu tarz bir giriş yapılırsa kullanıcı daha kolay bulmaktadır programı.

Veya programda 40 kadar formül var ve bunları kullanıcıların girmesi gerekiyor. Kullanıcının bunları bildiğini varsayıp, elle girdirmek bir çözüm ancak kullanıcıya bir ekran açıp, formülleri listeden seçtirip, seçilen formüle göre parametreleri girmesini sağlamak faaliyet tabanlı ve daha kullanıcı dostu bir çözüm.

* İyi bir arayüz program için daha çok müşteri demek olduğu gibi, aynı zamanda mutlu kullanıcılar demektir.

Teşekkürler Delphi Türkiye

 

PHP’de Veritabanı İşlemleri Yapmak

PHP’de MYSQL veritabanına bağlanmak ve veritabanı işlemleri yaptırmak için bir database sınıfı açalım. Bunun için veritabanı ismi, kullanıcı ismi ve şifre gereklidir. Bu bilgileri bir configure.php isimli dosyada tutuyor olalım. PHPMyAdmin’e girişte kullandığınız username ve password’u buraya yazacaksınız. Eğer herhangi bir şifreniz yoksa şifre tanımlama kısmındaki 1234′ü silip boş bırakacaksınız içini.  Bir de veritabanınızın adı benim örneğimde ornek_db olarak seçildi, ama siz değiştirebilirsiniz onu. Yani configure.php isimli dosyanın içeriği şöyle olacak:

<?php
 define('DB_SERVER', 'localhost');
 define('DB_USERNAME', 'root');
 define('DB_PASSWORD', '1234');
 define('DB_DATABASE', 'ornek_db');
 define('STORE_SESSIONS', 'mysql');
?>

O halde database.php sınıfımızın içeriği şöyle olacak:

<?php
require('configure.php');
class Database{
//database connection function
function connect(){
 $con = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD);
 if (!$con){
 die('Could not connect: ' . mysql_error());
 }
 //echo "Connection successfully.";
 mysql_select_db(DB_DATABASE);
 return $con;
}

//disconnect to db
function close($con){
 mysql_close($con);
}

//Buraya baska fonksiyonlar varsa onlar gelecek....

} //bu parantez database class'inin kapatma parantezidir.
 ?>

Şimdi istersek bu database.php’ye daha fazla fonksiyon ekleyebiliriz. Bu fonksiyonlar login, logout olsun. Fakat bu fonksiyonlar veritabanında bulunan şeyleri çekebiliyorlar, bu sebeble veritabanında sql sorgusunda sorulan şeylerin olması gerekiyor. Mesela users isimli bir tablo olacak ve bu tabloda user_email, user_password, user_id gibi değişkenler olacak. Bir kişi sisteme login olurken eposta adresini ve şifresini yazacak. Böylece sistem bu kişinin veritabanında olup olmadığını kontrol edecek. Şimdi aşağıdaki kod parçasını, az önce yarattığımız database.php’deki uygun boşluğa yapıştırın.

//Seval Unver //login to the system
function login($email, $pw){
 $db = new Database();
 $con = $db->connect();
 //Prevent from sql injections
 $email = mysql_real_escape_string(strip_tags(trim($email)));
 $pw = mysql_real_escape_string(strip_tags(trim());
 $sql = 'SELECT * FROM users WHERE user_email = "'.$email.'" AND user_password = "'.$pw.'"';
 // Check database
 $result = mysql_query($sql);
 $count = mysql_num_rows($result);
 // If result matched $email and $pw, table row must be 1 row
 if($count==1){
 //Login Successful
   session_regenerate_id();
 // Get result as id, email and password
   $member = mysql_fetch_array($result);
   $_SESSION['SESS_MEMBER_ID'] = $member['user_id'];
   $_SESSION['SESS_USERNAME'] = $member['user_email'];
   $_SESSION['SESS_PASSWORD'] = $member['user_password'];
 //Close connections...
   session_write_close();
   $db->close($con);
 return TRUE;
 } else {
   $db->close($con);
 return NULL;
 }
}
 //Seval Unver //logout from the system
function logout(){
 //session clear
 session_start();
 session_destroy();
 return TRUE;
}

Şimdi giriş bilgilerini girmemizi sağlayan bir form içeren bir php dosyası yaratmamız ve bu formdan verileri alarak giriş kontrolü yapan başka bir php dosyası daha yaratmamız gerekiyor. Giriş bilgilerimizi alan form index.php isimli dosyamızda olsun. Bu dosyada kişinin eposta adresini ve şifresini alarak sisteme giriş yapmasını sağlayacağız.Bu dosyanın içeriği aşağıdaki gibi olacak. (Böyle bir form oluşturmak hakkında daha fazla bilgi için şu yazıyı okuyunuz.)

<html>
<head><title>LOGIN</title></head>
<body>
<form action="login_success.php" method="post">
Email:<br/>
<input type="text" name="email" /><br/>
Password:<br/>
<input type="password" name="password" /><br/>
<input type="submit" value="Login" />
</form>
</body>
</html>

Diyelim ki bu form vasıtası ile kullanıcımız kişi bilgilerini girdi ve login düğmesine bastı, böylece form’dan post metodu ile veriler login_success.php dosyasına geldi. Şimdi o dosyayı yaratalım:

<?php
ob_start();
session_start();
require_once('database.php');
 // email and password sent from form
$email = $_POST['email'];
$password = $_POST['password'];
// eger sifreleme varsa: 
// define('SALT', 'SevalinGizliTuzu'); 
// $password=md5(SALT . $password); 

$db = new Database();
$result = $db->login($email,$password);

if($result == NULL|| !isset($_SESSION['SESS_MEMBER_ID'])){
 echo "login unsuccessful!";
}else{
 setcookie("email",$email,time()+3600);
 echo "login successfull!";
}
?>

Artık sistemi deneyebiliriz. Localhost’umuza bu 4 dosyayı atarız ve localhost’u açarız. Böylece index.php dosyamızdaki form ekrana gelir. Eğer MySQL database’imizde bir kullanıcı kaydı varsa sistemin doğru kontrol yapıp yapmadığını deneyebiliriz.
Kolay gelsin.

***

 

Eclipse PHP (PDT) ve Zend Debugger Kurulumu

PHP geliştiricileri UltraEdit, BBEdit, TextMate kullanıyorlar. Fakat PHP ve JavaScript yazım hatalarını editörde göremiyorlar, onun yerine önce php dosyalarını sunucuya göndermeleri gerekiyor, ya da bir internet tarayıcı yardımı ile dosyaları açmaları gerekiyor. Bir PHP geliştiricisi arkadaşım Phpdesigner veya Sublime Text 2 kullandığını söyledi. Araştırınca onların da güzel editörler olduklarını gördüm. Fakat biz Eclipse PDT All-In-One, Zend Debugger, JSEclipse, ve Subclipse kurarak deneyelim.

Neden bir IDE kullanıyoruz? Böylece hatalarımızı daha hızlı görebilecek ve daha hızlı düzeltebileceğiz. Örneğin bir noktalı virgül unutmuşsak bunu Eclipse bize daha derleme yapmadan anında gösterecek. Diğer bir yandan derlenmiş projemizin sonucunu editörümüzün hemen yanında görebileceğiz. Zend Debugger’ı ben de ilk defa kullanacağım ve bu yazıyı diğer geliştiricilere faydalı olması için yazıyorum. PDT (PHP Development Tool) eklentisi ile Eclipse kullanmak eskiden olduğundan çok daha pratik ve kullanışlı. PHP IDE, 2003′ten bu yana muhteşem ilerlemeler kaydetti, bunu siz de deneyin ve görün. Eclipse önceden sadece Java geliştirme ortamıydı, ama şimdi bir yığın eklenti sayesinde Perl, Ruby, ve Tcl gibi çeşitli dillerde geliştirmeye olanak veriyor. Tamam o halde artık kıuruluma başlayalım…

Adım 1: Apache-PHP-MySQL Ortamını Ayarlayın

Daha önceden PHP geliştiren kişilerin zaten halihazırda kurulmuş PHP ve localhost sunucuları vardır. Mesela XAMPP, Appserv, WAMP vs. gibi programlarla Apache, PHP ve MySQL’in üçünü tek bir program ile kurulabiliyor. Tek tek kuran insanlar da olabilir. Tercihinize göre istediğiniz yazılımı seçebilirsiniz, ama biz WAMP kuracağız.

Biz ortam olarak WAMP seçtik. http://www.wampserver.com/en/ adresinden WampServer son sürümüzü indiriyoruz. (Ben WampServer 2.2a-x32 indirdim, içerisindekiler: Apache 2.2.21 , PHP 5.3.8 , MySQL 5.5.16) Kurduktan sonra, Wamp’ı sistem çubuğunda saatin yanındaki minik simgeler içerisinde göreceksiniz. Renginin yeşil olması gerekiyor (turuncu ya da kırmızı olmayacak), eğer değilse üzerine tıklayarak menüyü açabilirsiniz. Oradan “Bütün servisleri başlat” seçeneğine tıklayın. Tarayıcı ile http://localhost/ ve http://localhost/phpmyadmin/ adreslerini açarak çalıştığını test edin.

Wamp’ı ben C:\wamp klasörüne kurdum. Bu sebeble C:\wamp\bin\apache\Apache2.2.21\bin\php.ini dosyasından php ayarları yapacağız. O yüzden bu dosyayı bulup notepad ile açıyoruz.

implicit_flush kelimesinin geçtiği satırı buluyoruz ve Off olan seçenği On olarak değiştiriyoruz:

implicit_flush = On

output_buffering özelliğini de Off yapıyoruz, böylece debug yapınca sonuçlarını görebileceğiz. Fakat ben bu satırı kendi php.ini dosyamda bulamadım, o halde kendimiz ekleyebiliriz, ama ben eklemedim şimdilik önemli değil:

output_buffering = Off

eAccelerator kurulu ve açık ise (değilse önemli değil):

[eaccelerator]
;eaccelerator.shm_size = "64"
eaccelerator.cache_dir = "C:/Program Files/wamp/tmp/eaccelerator"
;eaccelerator.enable = "1"
eaccelerator.enable = "0"

Şimdi sistem çubuğundaki Wamp simgesine tıklayın ve Wamp’taki bütün servisleri yeniden başlatın.

Adım 2: Eclipse PDT All-In-One İndirin ve Kurun

Daha önceden elinizde hiç Eclipse yoksa:

Daha önce elinde indirilmiş Eclipse paketi bulunanlar 2. paragrafa geçebilirler. Fakat bulunmayanlar için burdan devam edelim: Ya Zend’in sitesini(http://www.zend.com/en/community/pdt) ya da Eclipse PDT’nin web sayfasını (http://www.eclipse.org/pdt/downloads/) ziyaret edin ve stable olan bir Eclipse+PDT All-in-one versiyonu seçin. (PDT All-in-One bölümünden kendi platformunuza uygun olanını seçin.) İndirme bittikten sonra paketi açın ve Eclipse dosyasını uygulama klasörünüze ya da Program Files klasörüne sürükleyin. Eclipse.exe’yi çalıştırın. (2. altbaşlığı atlayarak devam edin..)

Daha önce elinizde indirilmiş bir Eclipse varsa:

PDT eklentisini Eclipse üzerinden kurabiliriz. Bende Eclipse Indigo vardı, onunla denediğimde PDT çalışıyor ama Zend Debugger çalışmıyordu, bu sebeble ben Eclipse Helios indirdim. Onun üzerine PDT kurdum. Şu şekilde yapılıyor:

Eclipse’yi açın, menüden Help->Install New Software tıklayın. “Filter” alanına PDT yazın. “Work with” alanındaki metin kutucuğundan, kenardaki oka tıklayarak seçebileceğimiz seçenekleri görüyoruz. Burada download.eclipse.org’la başlayan adresler olması lazım. Onları tek tek seçmek yerine “–All Available Sites–” diyerek hepsini seçmiş oluyoruz. Biraz bekleyince ekrana PDT eklentileri gelecek. General Purpose seçeneği altındakilerden kurulacak eklentileri seçiyoruz:

  • ACTF Visualization Extension for PDT Feature (Incubation)
  • PHP Development Tools (PDT) SDK Feature

Bunları seçtikten sonra Next diyoruz, ekranda yüklenecek eklentiler listelenir, tekrar Next diyoruz.. Şimdi bizden lisans sözleşmesini onaylamamızı isteyecek, onaylıyor ve Finish diyoruz. Eklenti kurulumu bittiği zaman sizden Eclipse’nin yeniden başlatılmasını isteyecek, onaylayın. Böylece PDT eklentisi kurulmuş oluyor.

Devam ediyoruz:

Şimdi yeni bir PHP projesi başlatın. Sonra proje içinde yeni bir PHP dosyası yaratın. Artık kodlamaya başlayabilirsiniz. (Kodları Eclipse’de karakter sorunu olmadan görmek istiyorsanız Preferences->General->Workspace altından cp-1254′ü UTF8 yapın.)

Eclipse bizlere PHP yazım renklendirmesi, kod tamamlama, PHP dökümantasyonu, phpDoc desteği ve daha fazlasını sağlar. Her ne kadar sadece PHP için kullanacak olsanız da Eclipse’nin düzgün çalışması için bilgisayarınızda JRE‘nin son sürümünün yüklü olması gerekmektedir. Bunun için http://www.oracle.com/technetwork/java/javase/downloads/index.html adresinden en son sürümü yüklüyoruz. 2012 Ocak itibariyle gördüğüm kadarıyla “Java SE 7u2″ son sürüm, o halde onun karşısındaki JRE yazan seçeneğin altındaki “Downloads”a tıklıyoruz. JRE’yi indirip kuruyoruz.

Adım 3: Zend Debugger Kurun

Lokal ve sunucu derlemesi için şimdi bizim XDebug veya Zend Debugger eklentisi kurmamız gerekiyor. Daha önceden Eclipse PDT All-in-one paketi indirdiyseniz sizin zaten paketinizin içerisinde Zend Debugger yüklüdür. Fakat All-in-one paketini indirmeyenler için Zend Debugger kurmayı anlatacağız.

Eclipse PDT All-in-one paketi olmayanlar için:

Zend Debugger’ı Eclipse vasıtasıyla eklenti olarak nasıl kuracağımızı anlatayım:

  • Eclipse menüden Help->Install New Software
  • “Work with” kutucuğunun yanındaki “Add…” butonuna basın…
    • Name: Zend Debugger
    • Location: http://downloads.zend.com/pdt
  • Zend Debugger şimdi “Work with” kutucuğunda belirecek. Gelmezse listeden seçin.
  • İndireceğiniz eklentiler ekrandaki büyük beyaz kutucuğa gelecek.
  • Ekrandaki bütün Zend Debugger seçeneklerinin yanındaki boş kutucuğa tik atın. Next butonuna basın.
  • Ekranda yüklenecek eklentiler listelenir, tekrar Next deyin..
  • Şimdi sizden lisans sözleşmesini onaylamanızı isteyecek, onaylayın ve Finish deyin.
  • İndirme işlemi bitince sizden Eclipse’yi yeniden başlatmanızı isteyecek. Onaylayın.

Şimdi artık PHP Debug yapabilecek bir ortama sahipsiniz.

Eğer Error verir ve kurulum başarılı tamamlanamazsa üzülmeyin.  Zend PDT Eclipse Plug-ins web sitesinden org.zend.php.debug.debugger.win32.x86_5.3.18.v20110322.jar isimli dosyayı indirin ve içindeki klasörleri WinRar gibi bir sıkıştırma programı ile açarak görebilirsiniz. Daha sonra Eclipse içerisindeki plugins klasörü içerisine org.zend.php.debug.debugger.win32.x86_5.3.18.v20110322 isimli bir yeni klasör açın ve içine jar dosyasından çıkardığınız resources ve META-INF klasörlerini atın. Eclipse’yi kapatıp açın. Bu da işe yaramazsa şu adresten execute edilebilir eklenti dosyası indirebilirsiniz: http://downloads.zend.com/pdt/debugger/ bu adresten org.zend.php.debug_feature-I20081217.zip indirebilirsiniz. Ayrıca http://downloads.zend.com/pdt/server-debugger/ adresinden ZendDebugger-5.2.15RC1-cygwin_nt-i386 indirmeniz da faydanıza olacaktır. Çünkü dummy.php dosyasını C:\www klasörü altına koymazsanız Debugger hata veriyor.

Adım 4: Eclipse PDT’de Gerekli Ayarları Yapın

Eclipse PDT’de üst menüden Window->Preferences->PHP->PHP Servers penceresini açıyoruz. New deyin ve aşağıdakileri yazın:

  • Name: Wamp 2.2
  • URL: http://localhost
  • Directory: C:\wamp\www

OK diyerek kaydedin ve çıkın. Daha sonra Eclipse Workspace’ini değiştirmek için menüden File->Switch Workspace->Other… deyin. Workspace kutucuğuna C:\wamp\www yazın ve Ok deyin.. Eclipse kapanıp yeniden açılacak. Şimdi yeni bir proje oluşturun. Yeni bir PHP dosyası ekleyin ve run ederek deneyin.

Eğer PHP kodunuzu run ettiğinizde çalışmazsa, muhtemelen aşağıdaki nedenlerden birisi yüzündendir:

  • Eclipse için Debugger ayarlanmamış olabilir. Eclipse menüden Window-Preferences->PHP->Debug açılır. Seçenekler aşağıdaki gibi olmalıdır:
    • PHP Debugger: Zend Debugger
    • Server: Default PHP Web Server
    • PHP Executable: PHP 5.3.2 (CGI)
  • Installed Debugger için IP ayarlaması yanlış olabilir. Eclipse menüden Window-Preferences->PHP->Debug->Installed Debuggers açılır. Zend Debugger seçilir ve Configure butonuna basılır. Client host/IP : 10.0.0.202,127.0.0.1 olmalıdır. Fakat kullandığınız başka host varsa buraya eklenmelidir.
  • PHP versiyonu yanlış seçilmiş olabilir. Eclipse menüden Window-Preferences->PHP->PHP Executables açılır. PHP 5.3.2 CGI Zend Debugger default olarak seçili olmalıdır.
  • PHP yorumlayıcısı versiyonu yanlış olabilir. Eclipse menüden Window-Preferences->PHP->PHP Interpreter açılır. PHP version: PHP 5.3 olmalıdır.
  • Son çare olarak: Kullandığı port numarası meşguldür. O halde Eclipse menüsünden Window-Preferences->PHP->Debug->Installed Debuggers seçeneğinden Zend Debugger port numarasını 10000′den farklı rastgele başka bir sayı olarak atayın (mesela 10080 gibi…).

Adım 5: JSEclipse Kurun

Eclipse’ye JavaScript editleme yeteneği kazandırmak için, Adobe Labs’dan JSEclipse kurmamız gerekiyor. JSEclipse ayrıca popüler JavaScript kütüphanelerini destekler: YUI, Dojo, Prototype, vb. Zend Debugger kurduğumuz gibi aynı şekilde şimdi de JSEclipse kuracağız.

  • Eclipse menüden Help->Install New Software
  • “Work with” kutucuğunun yanındaki “Add…” butonuna basın…
    • Name: JSEclipse
    • Location: http://download.macromedia.com/pub/labs/jseclipse/autoinstall/site.xml
  • JSEclipse şimdi “Work with” kutucuğunda belirecek. Gelmezse listeden seçin.
  • İndireceğiniz eklentiler ekrandaki büyük beyaz kutucuğa gelecek.
  • Ekrandaki bütün JSEclipse seçeneklerinin yanındaki boş kutucuğa tik atın. Next butonuna basın.
  • Ekranda yüklenecek eklentiler listelenir, tekrar Next deyin..
  • Şimdi sizden lisans sözleşmesini onaylamanızı isteyecek, onaylayın ve Finish deyin.
  • İndirme işlemi bitince sizden Eclipse’yi yeniden başlatmanızı isteyecek. Onaylayın.

Proje içerisine yeni JS dosyası yaratmak için, Menüden File->New->Other->Web->JavaScript. You should now have code completion and error highlighting for JavaScript files.

Adım 6: Subclipse Kurun

Eclipse’nin Subversion revizyon yönetimi desteği vermesini istiyorsanız tigris.org’dan geliştiriciler için olan Subclipse’yi kurmanız gerekiyor. Kurmak için gelin yine “Install New Software” aracını kullanalım…

  • Eclipse menüden Help->Install New Software
  • “Work with” kutucuğunun yanındaki “Add…” butonuna basın…
    • Name: Subclipse 1.2.x
    • Location: http://subclipse.tigris.org/update_1.2.x
  • Subclipse şimdi “Work with” kutucuğunda belirecek. Gelmezse listeden seçin.
  • İndireceğiniz eklentiler ekrandaki büyük beyaz kutucuğa gelecek.
  • Ekrandaki bütün Subclipse seçeneklerinin yanındaki boş kutucuğa tik atın. Next butonuna basın.
  • Ekranda yüklenecek eklentiler listelenir, tekrar Next deyin..
  • Şimdi sizden lisans sözleşmesini onaylamanızı isteyecek, onaylayın ve Finish deyin.
  • İndirme işlemi bitince sizden Eclipse’yi yeniden başlatmanızı isteyecek. Onaylayın.

Var olan bir Subversion depomuzu checkout yapalım:

  • Eclipse menüden File->New->Other->SVN->Checkout Projects from SVN, daha sonra Next butonuna basın.
  • Yeni depo oluşturun, “Create a New Repository”, sonra Next butonuna basın.
  • SVN deposu URL’sini girin, sonra Next butonuna basın.
  • Eğer depo URL’si secure ise, SSL sertifikasını kabul edin.
  • Checkout yapacağınız dosyaları seçin.
  • Eclipse’de yeni bir proje oluşturun, proje türünü PHP Project olarak seçin, sonra Next butonuna basın.
  • Proje ismini yazın, workspace, ve diğer proje ile ilgili şeyleri yazın ve Finish butonuna basın.
  • Ekranda bir uyarı göreceksiniz. Bu uyarı, SVN deposundaki dosyalar ile Eclipse ayar dosyalarının isimlerinin aynı olduğunu ve üzerine yazılacağını belirtir, endişelenecek bir şey yok, sadece ”OK” butonuna basın.
  • Projeniz SVN deposuna checkout oldu.

Buradaki şeyleri ben de ilk defa kullanmaya başladım. Eğer bir sorun olursa bunu internette araştırarak bulmaya çalışın. Bu yazıyı faydalı bulduysanız lütfen altına yorum yazın, iyi kodlamalar!

***

 

Jono Bacon’dan Günlük İletişim

Bu yazı, yazar Jono Bacon‘ın The Art of Communityisimli kitabından alınmıştır ve İngilizce’den Türkçe’ye Seval Ünver tarafından itinayla çevrilmiştir. Yazının başlığı kitapta “Günlük İletişim” olarak geçmektedir. Orjinal metne şuradan (For English visit here) ulaşabilirsiniz. İyi okumalar:)

Açık olun

Her zaman olabildiğince açık ve net iletişim kurun. Samimi konuşun ve karşınızdakinin anlayacağı kelimeler kullanın. Çok bilimsel terim kullanarak insanların beyinlerini bulandırmayın, ya da onlara patronluk taslamayın. Her zaman dinleyicileriniz için iletişim becerilerinizi kullanın.

Özlü konuşun

Konudan sapmayın, ve gevezelik ederek iletişiminizin ağırlığını azaltmayın. 100 kelimede anlatılabilecek bir şey söylemek için 1,000 kelime kullanmayın. Çoğumuz hergün eposta, mesaj, telefon görüşmesi vs. bir sürü dikkat dağıtıcı şey alıyoruz, gereksiz başıboşlukla topluluğunuzu sırtınıza yük etmeyin. Eğer bir epostayı yazmak 5 dakikadan fazla zamanınızı alıyorsa, birşeyleri yanlış yapıyorsunuz demektir (ya da siz klavyeyi gerçekten ama gerçekten yavaş kullanıyorsunuz.)

Duyarlı olun

Kendinizi bilgisayarınıza adamış olmak zorunda değilsiniz, ama sizinle iletişim kuran insanlara en fazla birkaç gün içerisinde geri dönüş yapmayı deneyin.Eğer eposta ve işlerinizin içerisinde boğuluyorsanız, sadece insanların sizin cevabınızı biraz erteleyeceğinizi bilmesine izin verin, böylece insanların beklentileri doğru bir şekilde oluşur. Bu mesele, sadece sizinle veya topluluk başkanı ile direk iletişimde bulunan kişiler için değil, aynı zamanda eposta listeleri, forumlar, IRC, ve diğer halka açık iletişim kanalları için de uygulanabilir.

Kendinizi göndericinin yerine koyun

Şu ikisi arasındaki farkı söylemek neredeyse imkansızdır:  “hiç kimse benim sorumu cevaplamıyor, çünkü kimse benim sorumun cevabını bilmiyor, yani denediğim şey imkansız ve ben başka bir şey denemeliyim.” ve “hiç kimse benim sorumu cevaplamıyor, herkes cevabı bilse dahi cevaplamıyor çünkü onlar çok meşgul, yani ben bu fikirden vazgeçene kadar oturup beklemeliyim.” Bu sizin, topluluk, yeni üyeler ve dışardan katılanlar karşısında daha arkadaş canlısı görünmenizi sağlar, eğer bu iki şey arasındaki farkı söyleyebilirlerse.

Eğlenceli olun

En büyük yanlışlardan birisi, daha saygıdeğer olan insanların “profesyonel görünmek” için gerçek kişiliklerini saklaması gerektiği inancıdır. Kişiliğinizin herkesi etkilemesine izin verin. Şaka ve nükteli yorumlar yapın ve alaycı olun. Toplulukların eğlenmesi gerekiyor ve bu liderliğin önemli bir parçasıdır.

İnsan olun

Hepimiz insanız, ve hepimiz hata yapabiliriz. Eğer her şeyi berbat ettiyseniz, bunu söyleyin ve özür dileyin. İnsanlar sizin dürüstlüğünüze ve doğruluğunuza değer verirler ve şevkat gösterirler. Bu, liderliğin kritik derecede önemli bir parçasıdır: topluluğunuz hata yaptığı zaman da onları kabul edersiniz. Kaçınmamız gereken şey savunmacılıktır, çünkü o, insanların sinir bozucu ve zarar verici savunma cümleleri kurma oyununa girmelerine neden olur. Eğer samimi olma konusunda elleriniz bağlı kalırsa, kendi hatalarınız hakkında konuşarak konuyu açın, sonra yanlış giden şeyleri tanımlayın ve gelecekte bu durumun tekrar yaşanmayacağı konusunda topluluğunuza güven verin.

***

 

Sevgilisi Askere Gidenlere Ufak Bir “Şafak Kaç?” Javascript Uygulaması

Şimdi şöyle yapıyoruz, aşağıdaki kodu bir text dosyasına yapıştırıyoruz. Sonra dosyanın içindeki sayıları kavuşma tarihine göre düzenliyoruz. Örneğin kavuşma tarihi 16 Nisan 2012 ise ise kalanGun değerini 15, kalanAy değerini 4, kalanYıl değerini 2012′den hesaplıyoruz. (Hesaplamalardaki sayıları kendi tarihinize göre düzenleyin.) Sonra bu dosyayı timer.html isminde masaüstüne kaydediyoruz. sonra üzerine tıklıyoruz ve ne kadar zaman kalmış görüyoruz :)

Not: Bu çalışma Javascript öğrenmek isteyenler için ufak bir örnek niteliğindedir. Programı çalıştırmak herhangi bir uzmanlık gerektirmemektedir. Basit bir html dosyasıdır ve benim tarafımdan yazılmıştır. Yorum bırakırsanız sevinirim.


<html>
<head>
<title>Safak Kac..</title>
<script type="text/javascript">
function timer()
{
var a = new Date();
var gun = a.getDate();
var ay = a.getMonth()+1;
var yil = a.getFullYear();
var saat = a.getHours();
var dakika = a.getMinutes();
var b = gun + "/" + ay + "/" + yil + " " + saat + ":" + dakika;
<!--Kavusma tarihi ve saati: 16/04/2012 00:00 -->
<!--15 gun sayisini kavusma tarihine gore duzenleyin. Kavusma gununun 1 eksigi yazilir-->
var kalanGun = 15-gun;
<!--4 ay sayisini kavusma tarihine gore duzenleyin.-->
var kalanAy = 4-ay;
<!--2012 yil sayisini kavusma tarihine gore duzenleyin.-->
var kalanYil = 2012-yil;
<!--istenilirse saatler de duzenlenebilir.-->
var kalanSaat = 24-saat;
var kalanDakika = 60-dakika;
var c = kalanYil + " yil, " + kalanAy + " ay, " + kalanGun + " gun, " + kalanSaat + " saat, " + kalanDakika + " dakika";
alert("Tarih su anda: " + b + ". Kavusmana " + c + " kadar zaman kaldi.");
document.getElementById("tarih").innerHTML= "Uzulme az kaldi!";
}
</script>
</head>
<body>
<!-- Kavusmaniza ne kadar zaman kalmis bakalim -->
<!--Kavusma tarihi ve saati: 16/04/2012 00:00 -->
<h1>Kavusmaniza ne kadar zaman kalmis bakalim!</h1>
<p id="tarih">Merak ediyorsan tikla.</p>
<button type="button" onclick="timer()">Tarihi Goster!</button>
</body>
</html>