29 Haziran 2009 Pazartesi

Surveey anket sistemi

Sitenize profesyonel anket desteği eklemek mi istoyrsunuz? Surveey bu iş için gerçekten ideal bir site.

* Çok / Tek soruluk anket desteği
* Çeşitli anket templateleri
* Kullanışlı anket stili
* Anket rapor sistemi
* Kurumsal ve personel anket seçenekleri

ve daha bir çok özellik surveey ile sizlere ücretsiz sağlanmakta.

Ayrıca Türkiye'nin en büyük futbol / spor sitesi mackolik.com'un anket sistemi de surveey'e emanet. :)

Ben de bazı web dizaynlarımda surveey anketi kullanıyorum. Tavsiye ederim.

Adres: http://www.surveey.com/adbadmin/

Vigenere şifresi nedir?

Kriptografi ile ilgil olan arkadaşların zaten bildiği bir metod olan Vigenere şifreleme yönteminden bahsetmek istiyorum. Bu makalem Kriptografi ile yeni ilgilenmeye başlayan (gerçi ilk olarak Sezar şifreleme yönetmi gösterilir ama biz ters yapalım :)) arkadaşlar için kullanışlı bir örnek olabilir. (Yada benim gibi arada git gel bir Kriptografi merakınız varsa iştahınızı kabartabilecek bir makale yazabilirim umarım)

İlk olarak 1553 yılında Giovan Batista Belasa tanıtılmış 16. yüzyılın sonlarında Blaise De Vigenere bu yöntemi düzenleyip kullanmıştır ve bu yöntemin adı “Vigenere şifresi” olarak kalmıştır.



Yukarıdaki tablo Vigenere tablosu olarak adlandırılır. Genel olarak basit şifreleme metodları alfabedeki harflere çeşitli fonksiyonlar uygulanalarak şifrelenmiş metinler elde edilir. Yukarıdaki tabloda da gözünüze çarpmıştır ki satır ve sütunlarda alfabe 1 er satır kayarak eklenmiştir.

Şimdi bu anlattıklarımızı örneklerle pekiştirelim:



Vigenere şifreleme yönteminde 2 method kullanılır:
1) Keyword
2) Priming Key (Başlangıç anahtarı)

Öncelikle bir başlangıç anahtarı belirleyelim ve elimizdeki düz metinin harflerini tek tek başlangıç anahtarı ile kesiştirelim. Kesişim harfi harfin şifrelenmiş şeklidir.

Bir diğer method ise düz metindeki harfi şifrelemek için bir başlangıç anahtarı kullanıyoruz. Düz metinin ilk harfi ile başlangıç anahtarını kesiştiriyoruz. Ardından diğer harfi şifrelemek için düz metinin ilk harfini anahtar olarak kullanıyoruz. Böylece tüm metin şifrelenmiş oluyor.

Şimdi yukarıdaki tablo ile basit bir şifreleme örneği yapalım.



Düz Metin: D E F T E R
B. anahtarı: B D E F T E
Şifreli Metin: E H J Y X V

Görüldüğü üzere B başlangıç anahtarı olarak kabul edilmiştir. D ile B'nin kesişimi E şifreli metinin ilk harfidir. Düz metinin 2. hafrini şifrelemek için düz metinin ilk harfi kullanılmıştır.


Umarım biraz olsun şifreleme konusunda iştahınızı kabartabilmişimdir. Bu arada ufak şifreleme işlemleriniz için bu metodu kullanabilirsiniz. Yakında şireleme ile ilgili ufak bir c programı yazmayı planlıyorum. En azından mantığı kavramamız açısından.

Herkese kolay gelsin.

İyi Programlama Alıştırmaları 1

C dilinde programlarınızın başına stdio.h öncü dosyasını eklemeniz tercihe bağlıdır. Standart giriş çıkış fonksiyonlarının kullanıldığı programlarda mutlaka eklenmelidir. Aksi takdirde programdaki hatalar programın çalıştırılması sırasında ortaya çıkar ki bu tür hataları düzeltmek oldukça güçtür.

Ayrıca yazdığımız fonksiyonların sonuna yorum satırı koymak fonksiyonunun kullanımı açısından programcıya kolaylık sağlar.

Fonksiyon yazarken { 'den sonraki satırı içeriden başlamak programcıya yazım kolaylığı sağlar.

Yazdırma fonksiyonu olan printf'ten sonra \n ile imleci yeni satıra geçirmek programın kullanılabilirliği konusunda kullanıcıya rahatlık sağlar.

Seo nedir?

İnternet kullanıcılarının hemen hemen her gün karşısına çıkan bir terim olan seo'dan bahsedeceğim. Seo öyle kısaca geçiştitilebilecek birşey değil. O yüzden yazımı sizlere daha faydalı olabilmesi açısından bölüm bölüm ilerleteceğim.

İlk olarak SEO nedir? ile başlayalım.

Seo Search Engine Optimization yani Türkçe karşılığı ile Arama Motoru Optimizasyonu'nun kısaltılmış şeklidir. İnternet'in insan hayatında yerinin yaygınlaşması üzerine internette ticari pay gün geçtikçe artmakta. Yani şöyle genişletecek olursak pazarlayacağınız bir ürün için önemli olan sunduğunuz ürün yada verdiğiniz hizmet ile bu ürünü, hizmeti alacak kitle arasındaki bağdır. İşte kaba bir tabirle seo pazarladığınız ürünü yada sunduğunuz hizmeti (web siteleri aracılığıyla) hedef kitelnize ulaştırmanızın en kolay ve etkili yoludur.

Google'ın arama motoru piyasasına girmesi ile piyasada rekabet artmış ve böylece reklam verenler hedef kitleye ulaşabilmek için bir siteye reklam vermek yerine arama motorları sayesinde ürüne ait etiketler (kelimelerde) üst sırada yer almak için çözümler üretme yolunu seçmişlerdir.

Bir diğer değişle arama motorlarının en büyük avantajı o an arama yapan kişiye istediğini sunabilmesidir. İnternet kullanıcısının o an ne istediğini en iyi arama motorları bilmektedir. :)

İşte bu bilinçle hareket eden reklamcılar SEO'yu (Arama motoru optimiasyonu) geliştirerek hedef kitleye ulaşma konusunda en iyi reytingi yakalamışlardır.


Diğer yazımda mini bir SEO sözlük vereceğim.

Okuduğunuz için teşekkürler.

27 Haziran 2009 Cumartesi

Basit Php Etiket Bulutu

Phpile basit bir etiket bulutu hazırlayalım. Öncelikle kendi belirlediğimiz etiketlerin boyutunu vereceğimiz değerlere göre (normalde etiketleri ve kullanım sayılarını database'e bağlanarak aldırmamız gerekiyor fakat database bağlantılı olanı ilerleyen günlerde yapacağız.) boyutlandıran bir fonksiyon yazalım.

$value) {
// font boyutunu bul

$size = round($min_size + (($value - $min_qty) * $step));

echo '' . $key . ' ';
} // etiketi yazdır etiketi sitenizin arama kısmını kullanarak etikete tıkladığında arama sonuçlarını listeletebilirsiniz.
}

$tags = array('etiket1' => 32, 'etiket2' => 41, 'etiket3' => 62, 'etiket4' => 51, 'etiket4' => 23, 'etiket5' => 91, 'etiket6' => 47, 'etiket7' => 82, 'etiket8' => 27); // tag dizisi key ve değeri

printTagCloud($tags); // etiket bulutunu yazdırır. bunu etiketlerin görünmesini istedğiniz yere yazabilirsiniz.
// ******************** etiket bulutu ************************
?>


İleriki günlerde etiketi ve sayısını sql database'den alarak hesaplayacağız.

26 Haziran 2009 Cuma

Flash Arka Fonlar

Flash dizaynlarınızda kullanabileceğiniz hoş arka planlar. İşinize yaracağını umarım.

Kendi uploadumdur. Virüs, adware vs içermez.

http://rapidshare.com/files/249027135/arka_plan.zip.html

Action Script ile Logoyu Buton haline getirelim.

Action script ile logoyu buton haline getirmek oldukça basit.

var logo:MovieClip = new MovieClip(); // logomuzu movie clip şeklinde ekliyoruz.

logo.x = 100; // logomuzun pozisyonunu belirliyoruz.
logo.y = 15;


Şimdi eklediğimiz butonu action script ile buton haline getirelim.

logo.useHandCursor = true; // mouse'u üzerine getirdiğimizde hand cursor yapar
logo.buttonMode = true; // logomuzun buton modunu aktifleştirir


// şimdi logomuza görev verelim.

logo.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown, false, 0, true);

Classımıza ait private bir fonksiyon ile şimdi mousedown eventımızı gerçekleştirelim

private function mouseDown(evt:MouseEvent):void {

SWFAddress.setValue("/"); // logoya tıkladığımızda anasayfaya yönleniriz.

}


Basit bir action script tutorial ile sadece kod kullanarak logomuzu oluşturup yönlendirdik.

21 Haziran 2009 Pazar

C For tutorial

Python dilinde while döngüsünden bahsetmiştim. Şimdi for döngüsü ile c'de bir örnek yapalım. Genel hatları ile while döngüsü bir koşul sağlandığı sürece çalıştırılacak komutlardan oluşuyordu. Koşul sağlanmadığında döngü sona eriyordu.

Eğer döngümüzün kaç kez döneceği belirli ise for yapısını kullanıyoruz. For yapısında ihtiyacımız olan tek şey döngünün kaç kez döndüğünü gösteren bir sayaç değişkeni. Bunu bir örnek ile açıklayalım.

Önceki yazdığımız python while tutorial'da sınıf mevcudu belli değildi ve kullanıcının not girinişi sonlandırması için 0 yada negarif bir değer girmesi gerekiyordu. Şimdiki örnekte ise sınıf mevcudu kullanıcıdan alınacak ve tanımlayacağımız sayaç değeri sınıf mevcuduna ulaşıncaya kadar no ve not girme işlemleri devam edecek.

#include
#include

int main()
{
int toplam=0,no,puan;
int mevcut=0;
int sayac=0;

printf("siniftaki ogrenci sayisini girin: \n");
scanf("%d",&mevcut);

for(sayac=0;sayac

Görüldüğü gibi kullanıcıdan sınıf mevcudu alınıyor ve for döngüsü ile sayaç değeri mevcuda ulaşıncaya kadar not giriş işlemi devam ediyor.

(ilk değer atamalarına ve sayacın 0 dan başladığına dikkat)

Python dilinde for'un kullanımı diğer dillerdekinden biraz farklı. Birdahaki yazımda ona deyineceğim.

Kaynak kodu aşağıdaki linkten indirebilirsiniz:

http://rapidshare.com/files/247035867/fot_tutorial.cpp.html

18 Haziran 2009 Perşembe

.daa dosya uzantısı nedir?

Açılımı Direct-Access-Archive olan bir dosya uzantısıdır. Sıkıştırma bakımından iso'dan daha küçük boyutludur.

.daa uzantılı dosyaları power iso programı ile açabilirsiniz.

Power iso için link:

http://rapidshare.com/files/246065201/power.rar.html

16 Haziran 2009 Salı

Sata nedir?

SERİAL ATA

Serial Ata'nın ne olduğunu anlamadan önce, nasıl bir ihtiyaç sonucu geliştirildiği ve şimdi ne durumda olduğundan biraz bahsedelim.

Sabit diskler veya optik cihazlar, diğer bilgisayar donanımları ile iletişim kurmak için arabirimleri kullanırlar. Günümüzde IDE arabirimi anakartın üzerinde geliyor. Hepimizin bildiği master/slave olarak adlandırılan arabirime, iki adet cihaz bağlanabiliyor. Yalnız 40 pinlik bir kablo ile bağlanan bu cihazlara jumper ayarı yapmak gerekiyor. IDE cephesinde gelinen sonraki nokta ise Ultra Ata arabirimi. ATA-2 ile uyumlu olan bu arabirim, saniyede 33 MB'lık bir hıza sahipti. Bu arabirim ile birlikte Cyclical Redundancy Check Error kontrolü getirildi. CRC, yazılması gereken verinin yazmadan önce kontrol edilmesi ve hata bulunursa yazma işleminin tekrardan başlatılması işlemine denir. Bu sayede hız ve güvenirlilik artırıldı. Zamanla bu arabirim de geliştirildi ve sırayla ATA-66 ve ATA-100 arabirimleri geldi. Adlarından da anlaşıldığı gibi bu arabirimlerin hızları 66 MBps ve 100 MBps. Günümüzde yaygın olarak Ultra ATA-100 kullanılıyor. Hatta bazı anakart üreticilerinin Ultra ATA-133'ü desteklemeye başladıklarını görebiliyoruz. Ama IDE arabirimi yerini daha geniş bir desteğe sahip olan Serial ATA'ya bırakıyor.


Serial ATA Nedir?

Serial ATA, masaüstü bilgisayarlardaki, bazı sunuculardaki ve ağa bağlı depolama cihazlarındaki paralel ATA fiziksel depolama arabiriminin evrimleşmiş hali olarak düşünülebilir.

Spesifikasyon daha ince, daha esnek kabloların ve daha az iğne sayılarının kullanılmasına olanak veriyor. Bu da bilgisayar üreticilerinin sistemlerini yönlendirmesi ve kurulması kolay kablolarla tasarlamalarını sağlıyor. Bununla birlikte şu an kullanılan Paralel ATA teknolojisinden daha kolay, daha esnek anakart yönlendirmesini de olası kılıyor.

Serial ATA II ile daha da geliştirilecek olan teknoloji önümüzdeki yılların bilgisayarlarının ihtiyaç duyduğu depolama arabirimlerini sağlamaya aday.Serial ATA Çalışma Grubu şu anda silikon tasarımı, kablo/konektör, depolama gibi konularda dünya lideri olan 80'den fazla üye ile oldukça güçlü bir konumda bulunuyor.



ATA'nın Gelişimi:

SATA/1500 kullanıma hazır İlk zamanlarda bir ATA standardından söz edilmezdi. Çeşitli firmaların tavsiyeleri ve tecrübeleri sonucunda zamanla anakart üreticileri de destek vererek ATA özellikleri geliştirildi. Ardından, ANSI (American National Standarts Institude) tarafından bir standart haline getirildi. Bu gelişmeden sonra Small Form Factor komitesi ATAPI arabiriminde standartlaşmaya gitti. Böylece CD-ROM ve sabitdiskler için ATA kabloları geliştirildi. Bu arabirim sürekli geliştirilerek standartlaştırıldı. Yani amatörce bir yol izlendi. Örneğin çok önemli olan BUS terminasyonu bu standarda sonradan eklendi. En son değişiklik ise, hepimizin bildiği 40 damarlı kablodan 80 damarlı kabloya geçiş ile yapıldı. Bu ekstra damar sayısı yüksek veri transfer hızlarının güvenli yapılabilmesi için geçerli. Çünkü gerilim iletimi ile veri aktarımda sorunlar yaşanabilir. ATA 100 arabiriminin teknolojik gelişmenin sonuna yaklaşması sonucu yeni bir arabirim için kollar sıvandı. Ve sonunda Serial ATA standardı geliştirildi. Bugünlerde birçok veri transfer uygulaması seri bağlantıyı tercih ediyor. Bu da en çok paralel ATA arabirimini etkiliyor. Çünkü saniyede 100 Mbyte'lık bir hız ile veri transferi gerçekleştirebilen bu arabirim teknolojisinin sınırına dayandı. Bu yeni arabirim Ultra Serial ATA 1500 ya da SATA/1500 olarak adlandırılıyor.

Serial ATA'ya Geçiş:

Paralel ATA gelişimini tamamladı Serial ATA, IDE ATA'nın bir sonraki adımı olarak görülüyor.Yeni arabirimi geliştiren grup geçtiğimiz aylarda bu yeni endüstri standardının son rötuşlarını tamamladı. ATA 1.0 olarak adlandırılan bu yeni standart, Intel Developer Forum'da ilgili kişilere tanıtıldı. Yeni standart sayesinde yeni nesil sabitdiskler daha yüksek bir performansla çalıştırılabilecek. Intel ve AMD işlemcileri de bu hız artışından faydalanabilecekler. Kablonun ince olması sayesindeyse, kasa içindeki hava sirkülasyonu daha etkili hale gelebilecek ve kasa içi ısı değeri düşebilecek. Bu da sistem kasalarını daha küçük boyutlara indirebilecek. Yeni seri I/O mimarisi, günümüzde kullanılan paralel I/O yapısının yerini aldıktan sonra, optik sürücü/yazıcı ve sabitdisk gibi cihazlara yüksek bir bant genişliği sunacak. Yeni arabirimin bir çok üretici tarafından desteklenmesi de önemli bir avantaj... Örneğin, APT, Dell, Intel, IBM ve Maxtor'un yanı sıra Seagate de bu yeni arabirimi ürünlerine entegre etmeye başladı bile.

Serial ATA'nın teknik özellikleri: SCSI arabirimine rakip

Bu teknolojinin performans değerlerinin ne olduğu hakkında çok net bilgi yok. Serial ATA'nın teorik olarak saniyede 600 Mbyte'lık bir veri transfer oranına ulaşılması gerekiyor. Buna karşın, arabirimi geliştiren grup, veri transfer hızının en az saniyede 150 Mbyte olacağını garanti ediyor.
Serial ATA, piyasada bulunan işletim sistemleriyle ve yazılımlarla uyumlu olmakla kalmıyor, master/slave konseptini de destekliyor. Bunu Paralel ATA'nın BUS topolojisi ile karıştırmamak gerek. Bu arabirim, daha çok yıldız topolojisine benziyor. Çünkü yıldız topolojisinde de olduğu gibi sistemler bire bir bağlanıyorlar. Ayrıca veri iletimi ve gönderimi, farklı veri yollarından yapılıyor. Nedeni ise, LVDS'nin, yani simetrik veri iletim tekniğinin kullanılması.



Kablo bağlantılardaki değişiklik: Kablo karmaşasına son

Paralel veri iletiminde hız sadece kısa mesafeli uzaklıklarda etkiliydi.Uzun mesafelerle veri iletimi gerçekleştiriliyor, ama hız önemli derecede düşüyordu. Bunun nedeni ise, bit sayılarının uzun mesafede rasgele hızlarda gitmesi ve bundan dolayı bir karmaşanın meydana gelmesiydi. Ayrıca, 40 veya 80 iğneli paralel kablolar kalın olduklarından dolayı, yeterince esnek bir yapıda değillerdi. Bu nedenle de, kasanın içindeki hava sirkülasyonunu da etkiliyorlardı. Yeni bağlantının bir diğer özelliği de, paralel bağlantıdan alıştığımız kalın kablo yerine çok daha ince bir kablo kullanılması.



Dolayısıyla yeni bağlantının pin sayısı da diğer bağlantıya göre daha düşük. Serial ATA için 6 ya da 8 damarlı bir kablo yeterli. Paralel kablolarda bu damar sayısı 40 idi, hatta Ultra ATA 66 ve 100'lerin çıkması ile birlikte damar sayısı da 80'e çıktı. Seri bağlantıda zaman gecikmesinin yaşanması mümkün değil. Çünkü seri bağlantıda, paralel bağlantının aksine sinyal iletimi tek bir kanaldan yapılıyor. İğne sayısının düşük olduğu bu bağlantıda, ses kartı ile CD-ROM arasında bağlanan kablo gibi incecik bir kablo kullandığından dolayı, hava sirkülasyonu da olumsuz yönde etkilemiyor.
Bir karşılaştırma yapmak gerekirse, aşağıdaki resimde sol tarafta klasik 80pin ATA133 kablosu, sağ tarafda ise 7pin Serial-ATA kablosunu görebilirseniz. İncelen bu kablolar sayesinde kasa içinde daha iyi hava sirkülasyonu ile daha sağlıklı bir soğutma ve daha derli toplu sistem dizaynları yapmak mümkün. Şuan ki ATA133'ün 133MB/s'sine karşılık Serial-ATA'nın 150MB/s'si arasında bant genişliği olarak önemsenebilecek bir fark yok. Ancak Serial-ATA teknolojik olarak çok daha fazla avantaja sahip.



Yeni arabirimin bir diğer önemli avantajı ise, yazılım kurulum sürecinin azalması ve kablo maliyetlerinin düşürülmesi. Master/Slave sorununu ile çoğumuz karşılaşmışızdır. Sisteme entegre ettiğiniz bir IDE cihazı, bu yüzden kullanıcıya dertli anlar yaşatabilir. Paralel ATA iki adet master mimarisine sahipti. Bu master mimarisine iki adet de slave dahil ediliyordu.

Bu nedenle günümüzün anakartlarında toplam dört adet IDE cihaz sisteme bağlanabiliyor. SATA bu soruna teke tek bir çözüm getiriyor. SATA Host Adaptörü, shadow register setine sahip. Bu register seti, günümüzün sabitdisklerinde bulunan register setlerini emule ediyor. Bu özellik sayesinde ATAPI ve ATA komutları, SATA protokollüne dönüşebiliyorlar. Master/Slave desteği de bu tür bir emulasyon ile yapılıyor. Eski bir diske sahip olan kullanıcılar, özel geliştirilmiş bir adaptör sayesinde SATA controller üzerinden çalıştırılabilirler. Kısaca burada master/slave ilişkisi yok. Yine dört adet cihaz destekleyen bu bağlantı, paralel arabirimden farklı olarak peer to peer tekniği ile çalışıyor. Yani, her bir cihaz kendi kablosu üzerinden ve tek bir port üzerinden bağlanıyor. Böylece host adaptörüne cihaz başına bağlantı yapılıyor. Bu sayede jumper ayarlaması ve Bus terminolojisi tarihe karışıyor. Yani, her bir cihaz, diğer cihazdan bağımsız bir şekilde çalıştırılıyor. Bu standardı destekleyen cihazları konfigüre etmek gerekmiyor. Jumper ayarı yok. Ayrıca işletim sistemleriyle uyumsuzluk da söz konusu değil. Buna ek olarak özel sürücüler kurmak da gerekmiyor. Bu protokolün bir diğer önemli yanı ise, sadece dahili veri transferler için düşünülmüş olması. Yani USB/USB2 ve Firewire arabirimleri, harici bağlantılar için yerlerini SATA'ya bırakmıyorlar

Serial ATA II: Ağ uygulamalarına ekstra güç

Henüz Serial ATA 1.0 arabirimi ile doğru düzgün tanışılmadan, Serial ATA II arabiriminden söz edilmeye başlandı. Geçen aylarda katıldığımız IDF'de bu konseptin ilk ürünlerini görme fırsatımız oldu. Bu arabirim çok daha hızlı olduğundan dolayı, ağ donanımları ve sunucular için düşünülmüş bir teknoloji. Serial ATA 1.0 gibi Serial ATA II de yüksek bir bant genişliğe sahip. Dolayısıyla bu arabirimin de optik cihazlar ve veri depolama ürünlerinde kullanılması düşünülüyor. Serial ATA 1.0'da olduğu gibi Serial ATA II de, incecik bir kablo ile veri aktarımı yapıyor. Ayrıca jumper ya da değişik ayarlamalara da gerek kalmıyor. Bu sayede, entegre ettiğiniz her bir cihaz, sistem tarafından otomatik olarak tanınıyor ve çalıştırılması sağlanıyor. Serial ATA II, iki dönemde gelişimini tamamlayacak. İlk dönemden, sunucu ve ağ donanımlar etkilenecek. Arabirimin iyice oturması sonucundan da, ikinci dönem devreye girecek. İkinci dönemde, daha yüksek bir transfer oranı, yani bant genişliği, üst mertebelere taşınacak. Serial ATA II, Serial ATA 1.0 arabirimine de uyumlu olacak. Serial ATA II arabiriminin 2003 yılının 2. yarısında tamamlanması hedefleniyor. Bu arabiriminin gelişmesini sağlamakla görevli olan Serial ATA II Working Group, Serial ATA 1.0'ı geliştiren grubun aynısı.

IDF fuarında, Serial ATA 1.0 arabirimi için üretilmiş çeşitli ürünler tanıtılmıştı. Örneğin Adaptec, Serial ATA Controller ve PCI RAID kartlarını tanıtmıştı. Seagate ise Serial ATA sabitdisklerini tanıtmıştı. Geçtiğimiz ayda gezdiğimiz CeBIT fuarında Maxtor'un da Serial ATA diskleri ürettiğini görme fırsatını bulduk.

Sonuç: Serial ATA'ya geçiş hazırlıkları

Yeni arabirime geçiş için bu arabirimi destekleyen ürünlerin fazlaca piyasada bulunması gerekir. Bu yüzden olsa gerek, SATA adaptörleri geliştirildi. Bu adaptörler sayesinde, Paralel ATA arabirimli bir disk, Serial ATA arabirimine göre çalıştırılabilir. Çalışabilmesinin nedeniyse, paralel sinyal iletiminin bu adaptörler sayesinde seri sinyal iletimine dönüştürülmesi...

Bu adaptörlerin, seriye geçiş için maliyeti artırması, bir dezavantaj gibi gözükebilir. Ama paralel kullanımda çok önemli bir yer tutan bellek ihtiyacının minimuma indirilmesi çok büyük bir avantaj. Bu da doğal olarak geçiş süresini kısaltır. Bu tür bir gelişme çok güçlü bir arabirim olan Firewire cephesinde yaşanmıştı ve halen yaşanmaya devam ediyor. Bildiğimiz gibi Firewire ya da IEEE1394 diye adlandırılan arabirim, senelerdir piyasada olmasına ve çok hızlı bir arabirim olmasına rağmen, geniş bir ürün seçeneğine sahip değil.Oysa, sabitdiskler veya optik sürücüler, Firewire arabirimi tarafından rahatlıkla desteklenebilir.



Serial-ATA harddiskler çıkana kadar ise ABIT'in SERILLEL ismini verdiği bir çevirici ile bu soruna çözüm getirilebiliyor. Yukardaki resimde gördüğünüz çevirici ile standart ATA33/66/100/133 harddisklerinizi Serial-ATA konnektörü üzerinden kullanabilirsiniz. WinXP altında ATA100 Matrox hardisklerimi bu çevirici vasıtası ile sorunsuz olarak Serial-ATA üzerinden kullanabildim. İsterseniz sisteminizi bu Serial-ATA bağlantısı üstünden de boot ettirebilirsiz. Bunun için BIOS'da bir ayar yok ancak Serial-ATA ile ATA133 RAID aynı fazı kullandığı için boot aygıtı olarak ATA133 RAID seçtiğinizde Serial-ATA'daki hdd'nizden de boot edebilirsiniz. Tabii ki ABIT bir adet SERILLEL'ide IT7-MAX2'nin kutusuna dahil etmeyi unutmamış. En azından Serial-ATA aygıtlar çıkana kadar bence bu çok iyi bir çözüm. Teknik açıdan ekstra bir avantajı pek olmasada en azından bizi kablo demetlerinden şimdilik kurtarabilir.

SATA Diske Windows 2000 ve XP Kurulumu Nasıl Yapılır?

Pc yi CD den BOOT etmek için ayarlayın. CD den boot etmeye başladıktan sonra,ekranın altında “Press F6 if you need to install a third party SCSI or RAID driver” yazısını görünce F6 tuşuna birkaç defa basınız . Her zaman 1 kere basmak yemeyebilir.

Daha sonra çıkacak olan ekranda "S" seçeneği ile yeni bir aygıt yükleyeceğinizi belirtin. Sizden A sürücüsüne (Floppy) gerekli sürücülerin olduğu disketi yerleştirmenizi ve "Enter" tuşuna basmanızı isteyecektir. Bazen size bir sürücü,bazen de birden fazla sürücü listesi çıkabilir. (... drivers for W2K,...drivers for Win XP ) uygun olanını seçip devam edin. Eğer bağlantılar doğru ve aygıtlarınız sağlamsa diskinizi görecektir. Kurulumun diğer işlemleri normal IDE Diske kurulum ile aynıdır.

İhtiyacınız olan dosyalar: Anakart Destek CD içindeki SATA sürücülerini bir diskete koymanız gerekmektedir. CD içinde "Drivers " bölümü içindedir. Mesela, ASUS P4PE de "Drivers->Promise" klasörü. Klasör içinde "txtsetup.oem" isminde bir dosyanın olması gerekmektedir. İşletim sistemi kurulumu sırasında bu dosyaya bakıyor.

NOT: Her anakart için aynı yerde olmayabilir bu dosyalar. Gigabite anakartın ga-8ıpe1000mk modelinde other/siI/si3112/si3112 içerisinde yer alıyor bu dosyalar. Muhakkak txtsetup.oem dosyasının olması gerekli.

Tavsiyem format sırasında Quick (Hızlı) format yapmanızdır. Aksi takdirde format işlemi birkaç saat sürebilir. Ya da 4-5 GB lık bir bölüm açıp işletim sistemini kurduktan sonra Disk Managment (Disk yönetimi) bölümünden kalan kısımları düzenleyebilirsiniz

alıntıdır.

Python While Loop Tutorial 2

While döngüsüne bir örnek daha : Fibonacci sayıları.

Fibonacci dizisinde her sayı kendisinden önce gelen 2 sayının toplamıdır.

Fibonacci dizisi ile ilgili ayrıntılı bilgi için:

http://tr.wikipedia.org/wiki/Fibonacci_dizisi

İstek: Kullanıcıdan bir sayı alan ve bu sayıya kadar olan fibonacci dizisini ekrana yazdıran programı geliştirin.

Programın kaynak koduna aşağıdaki linkten ulaşabilirsiniz.

http://rapidshare.com/files/245095435/fibo.py.html

Backtrack 4 Beta Çıktı

En popüler linux versiyonlarından biri olan backtrack'in son sürümü.

Description: DVD Image
Name:: bt4-beta.iso
Size: 854 MB
MD5: 7d1eb7f4748759e9735fee1b8a17c1d8

DOWNLOAD:

http://www.remote-exploit.org/cgi-bin/fileget?version=bt4-beta-iso

Daha ayrıntılı bilgi için:

http://www.remote-exploit.org/

15 Haziran 2009 Pazartesi

Sitenize Blogunuza chat odası ekleyin

Blogumda sağ alttaki chat odasını

https://www.meebo.com/rooms/create/

adresinden ücretsiz olarak üye olup siz de sitenize ekleyebilirsiniz. Oldukça kullanışlı bir chat ortamıdır. Renk ve boyut seçenekleri de sunmaktadır.

Python Tutorial While Loop

While döngüsü bir koşul sağlandığı sürece çalışacak olan komutları içerir. Bunu bir örnek üzerinde incelersek daha iyi olacak.

Örneğin kullanıcıdan tek tek öğrenci no ve not girilmesini isteyen ve eğer öğrenci no 0 yada - bir değer girilirse not girişini sonlandırıp sınıf ortalaması ekrana yazdıran programı python ile geliştirelim.

print "ogrenci notlarını sıra ile girin. bitis icin 0 girin"
sayac=0 # sayac sınıf mevcusunu bulmak icin kullanılır her not girişinde 1 arttırılır
toplam=0 # sınıftaki öğrencilerin notlarını toplar


no=input("ogrenci no girin:")
while no>0: # while koşulu. koşul sağlandığı sürece not girişi devam eder.
...puan=input("ogrencinin notunu girin:")
...toplam=toplam+puan # öğrencinin notlarını toplar
...sayac=sayac+1 # öğrenci mevcudunu sayar
...no=input("ogrenci no girin:") # yeni öğrenci nosunu alır

print "ogrencilerin not ortalamasi : %.2f" % float(float(toplam) / sayac)
# giriş bitince istatistiği ekrana yazdırır.



Programın kaynak dosyasına aşağıdaki linkten ulaşabilirsiniz:

http://rapidshare.com/files/244717852/not.py.html

12 Haziran 2009 Cuma

İmport ve Reload

İmport ve reload arasındaki fark ?

Öncelikle python ide ‘sinde veya DOS komut satırında komutların ne işe yaradığını hatırlayalım. DOS komut satırında komut çalıştırabilmek için başlat/donatılar/komut istemi yolu izlenir ve dos komut satırına python derleyici programını kaydettiğimiz yeri gireceğiz. Eğer Windows kullanıcısı ve ileri ilerici isek bu yol ” C:\python23\python “ olacaktır sayet benim gibi eski sürüm meraklısı değilseniz python23 ü python25 ile değiştirmeniz gerekir (sürüm 2.5)

İlk öğrenilen komut klasik “merhaba dünya” çıktısı almak olur bunun için

>>print ‘merhaba dunya’
veya
>>print ‘merhaba’ + ‘dunya’
veya
>>a=’merhaba’
>>b=’dunya’
>>print a+’ ’+b

komutları kullanılabilir. Diyelim bu küçük programı kaydetmek istiyoruz. Eğer farklı bir gui kullanmıyor isek bu iş için not defteri kullanılabilir. Nasıl yapılacak derseniz. Yukarıdaki komutları not defterine yazdıktan sonra merhabadunya.py olarak kaydedelim. Ancak burada sık yapılan bir hata text kaydetme biçimini all files durumuna getirmeden kaydetme işleminin yapılması ve sonuçta kaydedilen dosyanın merhabadunya.py.txt olmasıdır.

Text dosyasına şunlar yazalım:

a=’merhaba dunya’

print ‘merhaba dunya’

Kaydettiğimizi varsayarak bu dosyayı yükleyelim. Ve python shell ‘ e geçelim Dos yerine (içini karartıyor insanın :)

Bunun için import takısı ile

>>import merhabadunya #DOS ta ise import merhabadunya.py demeliydik
#bu arada ‘#’ işareti yorum yazmak için kullanılır. Sharp mı dersiniz Diyez mi ben bilmem

şimdi mehabadunya.py dosyası alınmış oldu.

>>merhabadunya #dediğimizde



#çıkışını alırız

şimdi merhabadunya.py doyasını text dosyası olarak açıp

b=’ben geldim’
komutunu ekleyelim. Ve

a=’merhaba dunya’

komutunu silelim Kaydetme işlemlerini anlatıldığı gibi uygulayalım. Tekrar shell programına döndüğümüzde b yi elde etmek için import takısını kullanmak yerine

reload(merhabadunya)

demek daha şık olur. Nedenine gelince import takısı bir dünya yeniden derleme gerçekleştirdiğnden kodlar=>byte kodları=>sanal makine kodları şematik olarak;


yani neymiş. Programın çalışma esnasında herhangi bir dosyadaki değişimleri havada yaklamak için reload() kullanıyormuşuz.

Python Tutorial 1 (if / else)

Bir yeni metin belgesi oluşturalım ve ilk python programımızı kodlamaya başlayalım.

# Kullanıcıya basit bir menu sunularak bu menüye göre seçeceği işlem ile gireceği sıcaklık değerini Fahrenheit'a yada dereceye çevirip ekrana yazıdracak program geliştirilmesi isteniyor.

print "1-Fahrenheit'tan dereceye cevir"
print "2-Derece'den Fahrenhet'a çevir"
print "------------------------------"
secim=raw_input("seciminizi girin:")
if (secim=='1'):
sicaklik=input("sicaklik girin:")
sonuc=(sicaklik-32)/1.8
print " %d Fahrenheit %d derecedir" % (sicaklik,sonuc)

if (secim=='2'):
sicaklik=input("sicaklik girin:")
sonuc=(sicaklik*1.8)+32
print " %d derece %d fahrenheit'dır" % (sicaklik,sonuc)

else:
exit


Görüldüğü gibi c'de yazdığımız programla arasında pek bir fark yok. Şimdi farkları inceleyelim.

Python'da temel olarak 2 giriş çeşidi vardır.
1) input
2) raw_input

Kısaca değinecek olursak input ekrana yazdığımız açıklamanın sonucu olan bir nesneyi döndürürken, raw_input standart bir stringi döndürecektir.

Yani koda bakarsak input("siceklik gir:") dediğimizde input sicaklik degerini döndürürken raw_input("secim gir:") dediğimizde seçimden sonra input("sicaklik gir:") (sicaklik gir stringini) döndürecektir.

Bir de girintili yazım stiline bakalım. C'de kullandığımız { } ler burda girintili yazım şekline dönüştürülmüş. komuttan sonra : ile satır içine geçebiliriz.

exit programı sonlandırır.

Böylece ilk python tutorial'ımızı başarıyla tamamladık.

Yukarıdaki kodları metin belgemize adı derece uzantısı .py olarak kaydedelim. Daha sonra metin belgesine sağ tıklayıp edit with idle ile shell'de açalım ve f5 ile programımızı çalıştıralım.

Syntax hataları f5 yaptıktan sonra varsa gösterilecektir.

Herkese bol pythonlu günler.

tyln

Python Derleme

Python'u indirebileceğiniz adresleri ve python hakkında ön bilgiyi blogumda "Python nedir?" adlı başlıkta bulabilirsiniz.

Şimdi biraz Python kodlarımızı nasıl derleriz ona bakalım.

Python'u bilgisayarımıza kurduysak karşımıza IDLE (Python Gui) ve Python Command Line diye 2 seçenek çıkacak. Biz Python Gui'yi kullanacağız. (Python Shell)

Shell'i çalıştırdığımızda karşımıza credits bölümü çıkar ve altında hemen >>> ile komut satırı gelir karşımıza. >>> shell'in düzgün başladığını ve komut girişine başlayabileceğimiz anlamına gelir.

Python'u hesap makinesi olarak kullanabilirsiniz.

Örneğin shell'imizde hemen bir kaç komut yazalım:

>>> 4+4 # 2 sayı toplama
8

>>> a=20 # deger atama
>>> a
20

>>> a + 10
30

>>> print "hello world" # ekrana string yazdırma
hello world


Örnekler çoğaltılabilir. (# yorum yazmamıza imkan sağlar.)

Shell'imizde f5 e bastığımızda programımız shell ekranında çalışır hale gelir.

Python kodlarımızı bir notepad'e kaydedip daha sonra uzantısını .py olarak değiştirelim. Dosyamıza sağ tıklayıp edit with IDLE dediğimizde kodlar python shell ile çalıştırılacaktır. f5 yaptığımızda programımız shell ekranında çalışmaya başlar.

Şimdilik bu çalıştırma işlemi bize yeterli olacaktır. Birdahaki yazımda python kodlarını import / reload etmekten bahsedeceğim

Bol pythonlu günler.

tyln

11 Haziran 2009 Perşembe

Sözlük Exploit

Exploit hakkında genel kavramları içeren bir sözlük. İşinize yarar umarım.

XXX Server Root Exploit : Kullanımına Göre çeşitlilik gösteren, ve Bu Exploitler sayesinde Belirtilmiş olan XXX Sistemi Üzerinde Root / Administrator yetkisine sahip olabileceğimiz Exploit Türevleridir.

Remote File Inclussion (RFI) Exploit : PHP ile Kodlanan Sayfalarda WebMasterların hatalarından kaynaklanan ve Uzaktan Dosya Incule Edebileceğimiz Exploit Türevidir (Genelde Kendi ListPatch'imizi Çağırırız).
RFI açıkları /content/contact_content.php?root_path=[Shell'imiz] şeklinde türerler.
Peki RFI Açıkları Nasıl Bulunur ?
Örnek olarak Kodlanan sayfada ;
require_once($Config['root_dir']. şeklinde bir kod geçiyor.
Bunu index.php?root_dir=[SHELL SCRIPT] şeklinde kullanırız.Bunun gibi bir çok hatalı kod olabilir.Biz RFI Açklarını, Kullanılan PHP Script'ini Local'e çekerek yada herhangi bir PHP Destekli Host'umuza upload ederek, kodları inceleyip bulabiliriz.
RFI çalıştırdıktan sonra, bizim kendi ShellScipt'imizin Upload edilmiş olan Host'ta Decode Edilmemiş olması gerekiyor.O yüzden Shell'iimzi *.txt, *.dat şeklinde Upload etmeliyiz.

Commands Execution Exploit : Başlıca Linux komutlarını bilmemiz takdiri ile Server'da Dosya Okuma, Dosyalar üzerinde Oynama Yapma / silme gibi bir çok Olanak tanıyan Exploit Türevleridir.

SQL Injection Exploit :Hedef Site üzerinde Yapılan kodlama hatalarından dolayı, Biz Site üzerinde SQL Injection Uygulayarak, DB ye ulaşıp, DB üzerindeki Dilediğimz Bilgiye Ulaşabiliyoruz. SQL Injection Exploitleri, SQL Code ları Injecte Etmeyi, Site üzerinden Değilde, Exploit Aracılığı ile Kapalı Kutumuz Üzerinden Yapmamıza Olanak Sağlayan Exploit Türevleridir.

Denial Of Service (DOS) Exploit : Sisteme Dışarıdan Saldırarak,Sistemi Devre Dışı Bırakmak amacıyla Yazılmış Olan Exploit Türevleridir.
Denial Of Service Attacklarına Maruz Kalan Web Serverlar (Attack Başarılı Sonuçlanması Durumunda) http:// servisini veremez, e-Posta Sunucuları Post Alıp Gönderemez Hale Gelir..

alıntıdır.

10 Haziran 2009 Çarşamba

Python nedir Python'a giriş

Python nesne yönelimli, yorumlanabilen, birimsel(modüler) ve etkileşimli bir programlama dilidir.

Girintilere dayalı basit sözdizimi, dilin öğrenilmesini ve akılda kalmasını kolaylaştırır. Bu da ona söz diziminin ayrıntıları ile vakit yitirmeden programlama yapılmaya başlanabilen bir dil olma özelliği kazandırır.

Modüler yapıyı, sınıf dizgesini (sistem) ve her türlü veri alanı girişini destekler. Hemen hemen her türlü platformda çalışabilir. (Unix , Linux, Mac, Windows, Amiga, Symbian Os bunlardan birkaçıdır). Python ile sistem programlama, kullanıcı arabirimi programlama, ağ programlama, uygulama ve veritabanı yazılımı programlama gibi birçok alanda yazılım geliştirebilirsiniz. Büyük yazılımların hızlı bir şekilde prototiplerinin üretilmesi ve denenmesi gerektiği durumlarda da C ya da C++ gibi dillere tercih edilir.

Daha ayrıntılı bilgi için:

http://tr.wikipedia.org/wiki/Python_(programlama_dili)

Python vs 3.1 download için:

http://www.python.org/download/releases/3.1/

Bios Güncelleme

Bios Güncelleme

Bios güncelleme konusunda çok ısrarcı davranışlar olduğu için bu dökümanı sizlerle paylaşma gereği hissettim ama kesinlikle uyarı yapmadan geçilmeyecek kadar hassas ve ciddi bir konu olduğu için bu işlemleri yaparken elektriklerinizin kesilmemesi, yanlış bios dosyasını yüklememeniz ve bu işlemi ömrünüzde hiç yapmadıysanız bu işlerde deneyimli bir arkadaşınızdan yardım almalısınız, doğacak sorun ve sorumluluk işlemi yapanı bağlar bunuda hatırlatayım. Aşağıda düzeltilebilecek sorunlara çözümlerde sunulmuştur lütfen dikkatli okuyun ve işlemleri atlamadan yapın.

Markalara Göre Adım Adım BIOS Güncelleme İşlemi:
Öncelikle sistemi boot edebilecek bir disket hazırlamanız gerekir. Daha sonra PC'yi bu disketle açmanız gerektiği için BIOS Setup menüsü yardımıyla ADVANCED BIOS FEATURES menüsü altından boot önceliğini disket sürücüsüne atayın. Bu şekilde sistemi disketten boot edebilirsiniz. Buradan ayrıca önemli BIOS ayarlarınızı da bir kenara not etmeyi unutmayın. Son olarak anakartınızın modeline göre, en güncel olan BIOS dosyasını ve AWDFLASH yazılımını (her anakart için AWDFLASH dosyası kullanılmaz)internetten indirip bu diskete kopyalayın ve bilgisayarınızı bu disket ile başlatın.
Şimdi komut satırında awdflash.exe yazıp enter'a basın. Karşınıza gelecek olan ekranda File Name to Program bölümüne anakart üreticinizin web sitesinden indirmiş olduğunuz yeni BIOS bilgilerini içeren .BIN(*.awd,*.rom,*.ami) uzantılı dosyanın ismini yazın. Bu işlemi yaptıktan sonra anakartınızın Flash tipi okunacak ve ekranda görülecektir. Bu aşamadan sonra mutlaka "Do You Want To Save BIOS?" sorusuna "Y" tuşuna basarak onay verin ve eski biosunuzu yedeklemek için bir dizin ve dosya ismi girin. Bu işlemi yaptıktan sonra karşınıza "Now Backup System Bios to a File" uyarı yazısı gelecektir. Son olarak "Are you sure to program?" sorusunu da "Y" tuşu ile yanıtlayıp BIOS güncellemesini başlatabilirsiniz. İşlem başarı ile tamamlandıktan sonra sistemi baştan başlatın ve BIOS Setup'a girip "LOAD SETUP DEFAULTS" seçeneğini uygulayın ve değiştirmek istediğiniz ayarları değiştirip, kaydedip çıkın. Açılış ekranında bazı anakartlarda sağ üst köşede bazılarında sol üstte genelde en altta soldan itibaren değişen BIOS sürümünü görürseniz BIOS'unuz doğru bir şekilde
güncellenmiş demektir. AMI BIOS kullananların ise sadece farklı olarak AMI Flash yazılımını kullanmaları gerekir. Geriye kalan işlemler ise benzer adımlarla tamamlanacaktır.

BIOS Güncelleme Hataları Her Zaman Ölümcül Olmayabilir
Her ne kadar dikkat ederseniz edin yanlış BIOS sürümü kullanma ya da güncelleme sırasında elektrik kesintisi gibi nedenlerden işlem yarım kalabilir. Bu durumda anakart iş görmez hale geleceğinden, bilgisayarı bir daha başlatmanız mümkün olmayacaktır. Yine de panik yapmadan aşağıdaki kurtarma yöntemlerini deneyebilirsiniz.

Intel Flash ROM: BIOS kurtarma konusunda en başarılı olan kullanıcılar bu grupta yer alır. Çünkü INTEL FLASH ROM'un Boot Block adı verilen bölgesi yazma korumasına sahiptir. BIOS çipinde çok ufak bir yer kaplayan, bilgisayarın açılabilmesi için bir takım algoritmalara sahip olan bu sistemciğin güncellenmesi gerekmediği için sistemin hata durumunda bile boot etmesi mümkün olabilir. BIOS Güncelleme esnasında elektrikler kesilse bile BIOS'unuzun Boot Block bölümü hasar görmediğinden, bilgisayarınız yine açılacaktır ve güncelleme işlemi tekrardan yapılacaktır. Intel marka anakartlarda herhangi bir sorunla karşılaştığınızda şu işlemleri uygulayabilirsiniz:
Önce INTEL anakartların üzerindeki "Flash Recovery" olarak tanımlanan jumper'ı bulun ve kurtarma (Recovery) pozisyonuna getirin. Daha önce, INTEL anakartlar için hazırladığınız disket ile sistemi açın. Görüntü alamasanız da işlemleri bip sesleriyle takip edin. İlk bip sesini duyduğunuzda disket sürücünüzün ışığı yanıyorsa işlem başlamış demektir. Floppy ışığı söndüğünde ise işlem bitmiştir. Artık sistemi kapatıp jumper'ı eski konumuna aldıktan sonra sisteminizi baştan açıp güncelleme işlemini tekrarlayabilirsiniz.

Award BIOS: bu yöntem AWARD BIOS kullanan birçok anakart kullanıcıları için geçerli olacaktır. BIOS güncellemesi sırasında, elektrik kesilmesi gibi bir sorun oluşup da bilgisayarınız açılmaz bir hale geldiyse hemen başka bir PC yardımıyla bir sistem disketi oluşturun. Anakartınızın üreticisinin web sayfasından kendi anakartınız için olan yeni BIOS dosyasını ve AWDFLASH yazılımını indirin. AWDFLASH yazılımını, BIOS dosyasını ve ek olarak sisteminizdeki autoexec.bat dosyasını da diskete kopyalayın. Disket sürücü içindeki autoexec.bat dosyasına sağ tuşla tıklayıp düzenleyin ve içerisindeki tüm satırları silip aşağıdaki satırı ekleyin:

A:\AWDFLASH dosya_adi.bin /SN /PY /CP /CD /CC

Bu disket ile sistemi açın. Ekrana görüntü gelmeyecektir. Bip sesleriyle beraber disket sürücü ışığı yanarsa işlem başlamış demektir. Ortalama 1,5 - 2 dakika arası sürecek bir işlemden sonra, disket sürücünün ışığı sönecektir.

AMI BIOS: AMI BIOS'lar için genelde ortak bir kurtarma yöntemi var. Bunun için önce anakartınızın üreticisinin adresinden yeni BIOS dosyasını çekin. Bu dosyanın ismi ne olursa olsun AMIBOOT.ROM olarak değiştirin ve bunu boş bir diskete kopyalayın. Diskete sistem dosyalarını transfer etmeyin. Sadece AMIBOOT.ROM dosyası olması yeterlidir. Daha sonra sisteme bu disketi koyduktan sonra, CTRL ve HOME tuşlarına basılı tutarak sistemi açın. Disket sürücünün ışığı yandıktan sonra elinizi bu tuşlardan çekin. BIOS güncelleme işlemi yaklaşık 35-40 saniye içinde bitecek ve işlem bittiğinde birkaç bip sesi çıkacaktır.

FARKLI BIOS GÜNCELLEME YÖNTEMLERİ

ASUS: Her anakart firması BIOS güncellemesi için yazının içinde belirttiğimiz standart yöntemleri kullanmaz. Örneğin ASUS anakartlarının BIOS'larını güncellemek için firmanın sitesinden anakarta göre özelleştirilmiş bir programlama yazılımı olan AFLASH.EXE awdflash.exe yada afudos.exe' yi çekmeniz gerekir.(genelde anakartınızın modeline uygun *flash.exe dosyası anakartınızla alakalı bios sekmesi altında bulabilirsiniz.)

INTEL: Intel anakartlarda ise durum çok daha farklıdır. Bu anakartlar genelde markalı PC'lerde kullanılan bir BIOS markası olan Phoenix BIOS kullanır ve Phoenix BIOS, anakartınızın markasını belirleyebileceğiniz kod numaraları da sunmaz. Eğer INTEL marka anakarta sahipseniz, açılışta CTRL-ALT-ESC tuş kombinasyonunu kullanarak kartınızın markasını öğrenebilirsiniz. Güncelleme işlemi için yine önce sistemi boot edebilecek bir disket hazırlamanız gerekir. Daha sonra Intel'in web sitesinden BIOS dosyasını sabit diske indirip çalıştırın. Karşınıza gelecek olan iki dosyadan "Bios.exe" dosyasını da çalıştırın ve açılan dosyaları diskete kopyalayın. Bu disket ile boot ettikten sonra Intel'in güncelleme için hazırladığı oldukça farklı olan menü ekranı karşınıza gelecektir.
Burada enter tuşuna basın ve "Update Flash Memory From a File" seçeneğini seçin. Ardından da "Update System BIOS" seçeneğini seçip yeni BIOS dosyanızın ismini girin. İşlem bittiğinde bilgisayarınızı yeniden başlatın.

Live UPDATE: Günümüzde ASUS, GigaByte ve MSI, bazı anakart modelleri için, canlı BIOS güncelleme anlamına gelen Live Uptade adı altında bir özellik de sunuyorlar. Bu özel bios güncelleme programcıkları sayesinde anakartınızın BIOS'unu fazla uğraşmadan ve teknik bir bilgiye sahip olmadan da güncellemeniz mümkün oluyor. Burada anakartın modeli otomatik olarak algılanıp internetten yeni uygun BIOS dosyası çekilip, güncelleme yapılıyor. Yazlımın Win9x,NT4.0,WinMe ve Windows 2000,WinXp altında çalışabiliyor.

Kesinlikle anakartınızın marka ve modeline uygun bios dosyasını ve önerilen flash.exe dosyasını kullanmak zorundasınız ve bios güncelleme prosedürlerine riayet etmeniz gerekiyor genelde tüm markaların sitelerinde bios update prosedürleri yazmaktadır.Bunlarıda söyledikten sonra bu işlemlerden doğacak sorunlardan şahsım ve turkeyforum sorumlu değildir.Merak edip bios güncellemesi yapacak arkadaşlara kolay gelsin..saygılar..

9 Haziran 2009 Salı

Dosyalarımı Programsız Nasıl Gizlerim?

Folder lock gibi yardımcı programlar kullanmadan dosylaramızı nasıl gizleriz?

Masaüstüne yeni bir metin belgesi oluşturalım. ve aşağıdaki kodu kopyalayalım.

cls
@ECHO OFF
title Folder Locker
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST Locker goto MDLOCKER
:CONFIRM
echo Are you sure u want to Lock the folder(Y/N)
set/p "cho=>"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Invalid choice.
goto CONFIRM
:LOCK
ren Locker "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder locked
goto End
:UNLOCK
echo Enter password to Unlock folder
set/p "pass=>"
if NOT %pass%==şifre goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Locker
echo Folder Unlocked successfully
goto End
:FAIL
echo Invalid password
goto end
:MDLOCKER
md Locker
echo Locker created successfully
goto End
:End

Kodda şifre yazan yere şifremizi yazalım ve kaydedelim.

Şimdi dosyanın uzantısını değiştirmemiz ve .bat yapmamız lazım. Bunun için önce Başlat/Bilgisayarım/c/araçlar/klasör seçenekleri/görünüm den Bilinen dosya türleri için uzantıları gizle kısmını kaldıralım.

Şimdi dosyamıza tekrar gelelim ve yeniden adlandır deyip isim verelim ve .txt uzantısını .bat olarak değiştirelim. Dosyayı bilgisayarda istediğimiz yere koyalım. Koyduğumuz yerde Locker isimli bir klasör oluşacaktır. Gizlemek istediğiniz dosyaları bu klasörün içine taşıyın ve tekrar oluşturduğumuz dosyaismi.bat isimli dosyaya tıklayın. "Are you sure u want to lock the folder? y/n" şeklinde sorduğunda "Y" dedinizmi locker isimli klasör görünmez olacaktır. Tekrar kullanmak istediğinizde dosyaismi.bat a tıklayın parola soracak. Parolanızı girin ve Locker isimli klasör tekrar görünür olacaktır.

Kolay gelsin

8 Haziran 2009 Pazartesi

Çoklu seçim switch tutorial

Programın akışı sırasında karşımıza çıkabilecek 3 yapıdan bahsetmiştik.

1) Seçim (if / else )
2) Çoklu seçim (switch)
3) Döngüler

İf / else yapısı için blogdaki if/else tutorial'ını inceleyebilirsiniz.

Şimdi çoklu seçim yapısına basit bir örnek ile değinelim.

#include
#include
int main()
{
int a,b,secenek; // değişken tanımlamaları

printf("islem yapilacak sayilari girin: \n");
scanf("%d %d",&a,&b); // değişkenlere değer atama

printf("menu icin bir secenek girin: 1 toplama 2 cikarma \n");
scanf("%d",&secenek); // çoklu seçim için kullanacağımız değişken

switch(secenek) // çoklu seçim yapısı
{
case 1: printf("%d", int(a+b)); break; // seçenek için 1 girilirse case 1 deki işlemler yapılır
case 2: printf("%d", int(a-b)); break; // seçenek için 2 girilirse case2 deki işlemler yapılır
default: printf("hatali giris! \n"); // 1 yada 2 dışında bir sayı girilirse default değeri altındaki işlemler yapılır.
}
getch();
}

Bu basit bir örnektir. Daha karmaşık ve büyük programlarda daha fazla case seçeneği olabilir. Tek tek if / else kullanmak yerine çoklu seçim yapısını kullanmak etlinlik açısından daha önemlidir.

İnternet Explorer başlangıç sayfası değiştirme

Son zamanlarda arkadaşlardan en sık gelen soru sanırım "Başlangıç sayfamı değiştiremiyorum, nasıl değiştirebilirim?" sorusudur. Bu yazımda kolay ve etkili bir çözüm yolu önereceğim.

* Başlat / Çalıştır kısmına regedit.exe yazıyoruz.

* Sırayla şu yolu izliyoruz:

>HKEY_CURRENT_USER
>> Software
>>> Microsoft
>>>> İnternet Explorer
>>>>> Main

Daha sonra sağdaki kısımdan main page'i istediğimiz sayfa yapıyoruz.

Kolay gelsin.

7 Haziran 2009 Pazar

Mini Sözlük

Bir araştırma ödevim için hazırladığım mini sözlük.

------------------
SÖZLÜK
------------------

Hacker: Şimdi herkesin hepbir ağızdan “internet korsanı bunu yazmaya ne gerek var?” dediğinizi duyar gibiyim. Ancak hacker son zamanlarda eski anlamından çok uzak anlamlarda kullanılıyor. Hacker; eski anlamıyla “üstat” demektir. Yani kod bilgisi ve becerisine sahip olan, meraklı sınırları aşkmaktan zevk alan ve en temeliyle teknik bilgisayar bilgi ve becerisine sahip olan insanlara verilen addır.. Tabi artık herkesin değimiyle hacker “internet korsanı” olarak tanımlanıyor. Fakat şunu söylemeliyim ki gerçek bir hacker ne istediğini bilir, elindeki bilgiyi ve beceriyi kendi ihtiyaçları doğrultusunda kullanır ve istediğini alır. O yüzden internette gezinen ve buldukları programlarla kullanıcıların birtakım bilgilerini çalan kişilere buradan şunu söylüyorum ki hiç ortalıkta ben hacker’ım diye dolaşmasınlar. Gidip 2-3 satır kod yazmayı öğrensinler, birtakım şeyleri sanal ortamda var etmeye çalışsınlar. Bu şekilde davranmaları hem kendilerine hem de diğer tüm internet kullanıcılarına çok daha faydalı olurlar.

Port: Bilgisayarınızın çalışmasını düzenleyen ve organize eden en önemli parçası anakarttır. Bu organize işlemi anakart üzerinde bulunan chipsetler tarafından gerçekleştirilir. İşte anakart üzerinde bulunan ve giriş çıkış için kullanılan pinlere ve bağlantı noktalarına “port” denir.
Fakat bu fiziksel porttur. Bizi ilgilendiren biraz daha soyut olan port kavramıdır. Bilgisayarımızda kullandığımız programlardan bazıları dış ortamdan (internet ortamı) gelen bazı istekleri kabul eder ve bunlardan uygun gördüklerine cevap verir. Bu etkileşimde ip adresleri ile istenilen bilgisayarlara ulaşılır. İşte ulaşılan bu bilgisayarlar üzerinde hizmet alınacak programı belirlemek için bilgisayar üzerinde açılmış soyut bağlantı noktalarına “port” denir.

İp Adresi: IP: İnternet Protokol İP adresi TCP/IP sistemini kullanan bir ağda, bilgisayarların birbirleriyle iletişim kurmasını ve birbirlerini tanıyarak veri alış-verişinde bulunmasını sağlayan benzersiz bir adrestir.

Firewall: Türkçesiyle Ateş duvarları; bulunduğunuz ağda sizden izinsiz bilgisayarınıza kurulmak istenen erişimleri engelleyen veya izniniz dahilinde kısıtlayan yada tamamen izin veren denetim programlarına verilen genel addır.

Proxy: Kelime anlamı “vekil, elçi” demektir. Proxy internete bağlı bir bilgisayar ile internet ortamı arasındaki etkileşimi sağlayan yardımcı bir geçiş noktasıdır. Proxy sunucusu sizden aldığı bilgileri ve istekleri yürütür ve sonra sonuçlarını tekrar size iletir. Bu yürütme işlemi sırasında bilgiler proxy’de depolanır. Tekrar aynı işlemi yapmak istediğinizde etkileşim siteyle değil, Proxy ile sağlanır ve böylece daha hızlı işlem gerçekleştirebilirsiniz. İnternet ortamında illa bir Proxy kullancaksınız diye bir şey yoktur. Fakat Proxy kullanmanız yapacağınız işlemlerinizi daha hızlı gerçekleştirmenizi sağlar.

Keylogger: En basit şekliyle keylogger sizin klavyede yaptıklarınızı takip ederek bunları bit .txt dosyası halinde kaydeden programlara verilen genel addır. Bu programlar çeşidine göre keylogger’ı kuran kişinin mail adresine belli aralıklarla klavyede yapılanları e-mail şeklinde gönderebilir de. Dokümanın ileriki bölümlerinde keylogger’lardan nasıl korunacağınızı detaylı bir şekilde anlatacağım.




Trojan: Öncelikle trojanlar virüs sınıfına girmez. Trojanlar yazılım sınıfındadırlar. İndirdiğimiz herhangi bir yazılımın içine gizlenmiş ve bize yararlı gibi gözüken fakat trojanı yazan kişinin yazdığı kodlara bağlı olarak klavyede girdiklerimizi, ekran görüntülerimizi, cookieslerimizi vb. trojanı kodlayana gönderen casus yazılımlardır. Ayrıca yazarın belirttiği portları açarak bilgisayarımızı savunmasız hale getirebilirler. Trojanlar ilk olarak virüsler gibi iyi amaca yönelik yazılmışlardır. Aslında trojanların temel amacı uzaktan pc komutasını sağlamaktır. Fakat hepmizin de bildiği gibi kod’lar elimizde. İyiye yada kötüye kullanmak kişinin tercihine bağlı. İleride bahsedeceğim ama kaba bir şekilde deyinmek gerekirse bilgisayarınıza kuracağınız yazılımın (özellikle internetten indirdiklerinizin) kaynağının güvenilir olması çok ama çok önemli.

Spyware: Spyware en basit tabiriyle bir kullanıcının bilgilerini kullanıcının bilgisi dahilinde olmadan toplayarak, yine kullanıcını bilgisi dışında internet ortamındaki bir sunucuya gönderen programlara verilen genel addır.

Worm: Türkçe karşılığı ile solucanlar (wormler) bulaştıkları pc aracılığı ile aynı ağı paylaşan diğer bilgisayarlara da hızla kendi kopyalarını oluşturarak bulaşırlar. Bu bulaşma işlemi hızlı bir şekilde gerçekleşir ve otomatiktir. Solucanlar virüslerin bir alt sınıfı olarak incelenebilirler. E-mail aracılığı ile yayılma özelliğine de sahip olan wormlerin en büyük zararı bulaşmaya başladıkları ve çoğaldıkları ağları yavaşlatırlar ve yapılan işlemlerde zaman kaybına uğramamızı sağlarlar.

Adware: İçinde çeşitli reklamlar barındıran ve siz istemeden herhangi bir anda bilgisayarınızda bu reklamların belirmesini sağlayan programlara verilen genel addır. Bu tür programı yazanlar kolay para kazanma yoluna giderler ve programın içine büyük firmaların reklamlarını koyarlar. Bu tür programlar genelde ücretsizdir ve yazanın kazancı sizin programı bilgisayarınıza kurduktan sonra beliren bu reklamlara tıklamanız ile gerçekleşir.

Virüs: Virüsler bir programa yada bir dosyaya gizlenmiş kod parçacıklarıdır. Virüsler çalıştırıldıktan sonra bilgisayarın hafızasında yer edinirler. Çoğalma ve diğer dosyalara bulaşma yetenekleri vardır. Kodlanış şekillerine göre bilgisayarınızda çeşitli zararlara yol açabilirler.

Server: Basit olarak saldırı programlarının kendi işlevlerini karşı tarafın bilgisayarında yürütebilmek için gerekli olan güvenlik açıklarına yol açan kodlar genelidir. Bu genelde .exe şeklindeki dosyalardır. Exe birleştiriciler ile herhangi bir resme yada başka tür bir dosyaya eklenebilir. Siz aldığınız dosyayı bir resim olarak görürsünüz fakat bilgisayarınız çoktan savunmasız hale gelmiştir. Korunmanın en basit yolu aldığınız dosyanın sağlayıcısının güvenilirliğidir.

Malware: Malicious Software’ın kısaltılmış şeklidir. Virüslerin, trojanların, wormlerin yani kısaca istenmeyen tüm zararlı kodlara genel olarak “malware” denir.

Spam: Aynı mesajın alıcıların isteği dışında birçok kişiye toplu halde gönderilmesidir. Çoğunlukla ticari reklamlar içerirler. Site tanıtımları, ürün tanıtımları vb. şeklinde içerikler bulundururlar. Vakit kaybına neden oldukları gibi sinir bozukluklarına da yol açarlar.

Fake Mail: Sahte mail anlamına gelir. Mail’ı alan kişiden kullanıcı adı şifre vb. bilgileri doldurması istenir. Fake mail’ın en büyük özelliği birebir aynı olmasıdır. Normal maildan farkı ise girdiğiniz bilgilerin istenmeyen kişilere gönderilmesidir.

Lamer: Sağdan soldan bulduğu yazılım ve programlarla internet kullanıcılarının bilgilerini çalan ve bu sayede kendini hacker sanan gereksiz insanların her birine verilen genel ad.
Online oyunlarda hile yapan kişilere de bu tabir kullanılır. Örnk: Counter-Strike

Wordlist: Bazı programların şifre kırmakta kullandığı harf ve rakam kombinasyonlarından oluşmuş listedir. Her satırda bir kombinasyon bulunur.

Combolist: Site şifreleri kırmak için kullanılar wordlistlerin özel adıdır. Bunlar da harf rakam kombinasyonlarından oluşur fakat wordlistlerden ayıran özelliği her satırda 2 kombinasyonun bulunmasıdır. Örnk: xyz:123. 2 kombinasyon arasında : işareti vadır. Bunlardan 1. kısım kullanıcı adı, 2. kısım ise şifre için denenir.

Cookie: Türkçe’de çerez anlamına gelir. Bir web sayfasına girdiğiniz bilgileri kaydederek sayfayı tekrar ziyaretinizde o bilgileri hatırlar. Bilgisayarınızın belli bir bölümüne kaydedilen bu bilgiler “cookie” olarak adlandırılır. Sizden izin alınarak kaydedilir fakat bir kez kaydedildi mi tekrar okunmak için sizden izin alınmaz. Tekrar tekrar okunabilir. Her web sitesinin kedine ait cookieleri vadır. Bir başka web sitesi diğerinin cookielerini okuyamaz.

Adobe Reader'da güvenlik açığı.

Adobe Reader 9 ve alt sürümleri
Adobe Acrobat (Professional, 3D, and Standard) 9 ve alt sürümleri

Yukarıdaki sürümlerden birini kullanıyorsanız programın javaları çalıştırmasına olanak sağlayan kısmında güvenlik açığı var. Bu açık sayesinde uzaktan kod çalıştırmak mümkün olabiliyor.

Programdaki javascript özelliğini deaktif etmelisiniz.

Şimdi nasıl yapacağınızı anlatıyorum:

Programı başlatın ve düzen / tercihler 'e tıklayın (ctrl+k)

Soldaki menuden javascript sekmesine gelin ve acrobat javascipt özelliğini kapatın.

ardından tamam ile işlemi sonlandırın.

Adobe javasciprt özelliğini kapatmanız bazı sayfalarda tam verim alamamanıza yol açar. Bu durumlarda anlık aktif ederek gerekli görüntülemeyi yapabilirsiniz.

Programı kapatırken bu konuda bir uyarı alacaksınız zaten. "Hayır" seçeneği ile yolunuza devam edebilirsiniz.

6 Haziran 2009 Cumartesi

Bonjour servis nedir nasıl kaldırılır?

Bonjour service adobe programları ve quick time, itunes gibi programlarla bilgisayarınıza kurulan bir apple software'dır. Adobe configürasyon ayarlarını kolay yapabilmek için bu yazılımı kullanır.

Bu program saçma sapan bir yazılım olup internet hızınızı ve bilgisayarınızı mümkün olduğunca yavaşlatır.

C://Program Files / Bonjour dizinine konumlanır. silmek istediğinizde direk silemezsiniz. izinlere ihtiyacınız var şeklinde bir hata alırsınız.

Şimdi nasıl silindiğine bir göz atalım;

1) Xp kullanıyorsanız başlat / çalıştır kısmına "services.msc" yazarak tamam tuşuna basın.
2) Vista kullanıyorsanız başlat / arama kısmına "services.msc" yazarak tamam tuşuna basın.
karşınıza çıkan services.msc üstüne gelerek ctrl+shift+enter yapın ve yönetici hakları tanıyın ve hizmetler kısmına gelin.

Burada genelde en üstte olan ##Id_String1.6844F930… şeklinde devam eden servise çift tıklayın. Ardından Otomatik olarak işaretlenmiş Başlangıç türü'nü devre dışı bırak yapın ve hizmeti durdurun.

Ardından pc'nizi yeniden başlatın ve üstteki dizindeki klasörü silin.

if else tutorial

if / else seçim yapısı:

if / else deyimi hemen hemen tüm programlama dilleri içinde mevcut bir deyimdir. Algoritmalarda ve flowchartlarda veri akışı sırasında karşımıza çıkacak 3 temel yapı var demiştik. 1) seçim 2) çoklu seçim 3) döngü

şimdi ilk olarak seçim yapısını inceleyelim. yine örnek bir soru üzerinde çalışalım:

* Kullanıcıdan 2 sayı girmesini isteyen ve birbirleriyle karşılaştırıp sonucu ekrana yazdıran basit bir program geliştirilmek istenmektedir.

// şimdi programımızı geliştirmeye başlayalım. ilk olarak standart öncü dosyamızı ekleyelim.

#include


// programın main kısmına geçelim
int main()
{
// değişkenleri tanımlayalım
float sayi1, sayi2;

// şimdi kullanıcıdan sayıları girmesini isteyelim

printf("ilk sayiyi girin: \n");
scanf("%f", &sayi1);
printf("2. sayiyi girin: \n");
scanf("%f", &sayi2);

// şimdi seçme kısmına geldik. elimizde 3 durum var ve bu üc durumdan birini seçip ekrana yazdıracağız. 1) 1. sayı 2. den büyük olabilir. 2) 2 sayı da eşit olabilir 3) 2. sayı birinciden büyük olabilir. şimdi kodlamaya devam edelim.

if(sayi1>sayi2) // eger sayi 1 daha buyukse ekrana sayi 1 daha buyuk yaz
printf("Sayi 1 Sayi 2'den daha buyuk \n");

else if(sayi1==sayi2)
printf("Sayi 1 ve Sayi 2 esit \n");

else
printf("Sayi2 sayi 1'den daha buyuk \n");

return 0;
}


Seçme yapısının basit mantığı böyle. seçme yapısı genellikle 2li durumlarda kullanılır. durum sayısı fazla olduğu zaman çoklu seçim yapısını kullanmak hem programın etkinliğini arttırır hem de kodlama yükünü azaltır.

dikkat ederseniz son durum için if kullanmadık. çünkü elimizde olabilecek 3 durumumuz var ve biz zaten 2 si için if(koşul) yapısını kullandık. son durum için tekrar bir if(koşul) yapısı kullanmamıza gerek kalmadı. else burada eğer ilk 2 koşul sağlanmıyorsa diğer tüm koşullar sağlandığı zaman çalışacak komutları yazmamıza olanak sağlar

Basit bir hesaplama programı

* kullanıcıdan gideceği yolu ve gitmek istediği süreyi alıp yol boyunca gitmesi gereken ortalama hızı bulan bir program geliştirin.

#include
#include

int main()
{
double yol, ortalama_hiz;
int zaman;

printf("Lutfen gideceginiz mesafeyi yazin (m): \n");
scanf("%lf", &yol);
printf("Lutfen gitmek istediginiz sureyi yazin (sn): \n");
scanf("%d", &zaman);
ortalama_hiz=yol/zaman;
printf("Yol boyunca ortalama hiziniz: %lf m/sn olmalidir.", ortalama_hiz);
getch();
}



kodlara kendimiz bir göz atalım:

include ile header dosyaları eklenmiştir. header dosyası nedir? header dosyaları program içinde kullanacağınız hazır fonksiyonları içeren dosyalardır. (şimdilik bu kadar yeter. )

int main() { } -> main kısmı programımızın gövdesini oluşturmaktadır. neden main adı veriyoruz? aslında main ana fonksiyon olarak tanımlanabilir. fonksiyon nedir? fonksiyonlar ileriki bölümlerde öğreneceğimiz bir konudur. kısaca değinmek gerekirse programda bazen tekrar etmesi gereken kod öbekleri olabilir. bunları sık sık tekrar yazmak yerine fonksiyon şeklide main kısmının üstünde yada altında tanımlayarak tekrar tekrar kullanabiliriz. programı küçük alt birimlere bölmeye yarar. (böl ve yönet mantığı) şimdilik fonksiyonlar hakkında bu kadar yeter.

ilk kullanacağımız hazır fonksiyonlarımız scanf ve printf. printf kalıbını ekrana bir şey yazdırmak istediğimizde kullanırız. kalıbı printf(" yazılacak metin \n"); şeklindedir.


\n nedir? imleci alt satıra geçirmeye yarar (next) başka kullanım olarak \t olabilir. t-> tab bir miktar ileri kaydırır imleci.

c'de ifadelerin sonuna ; koymamız gerekiyor. derleyici ; geldiğinde komutun sona erdiğini anlamakta. yeri gelmişken söylemek isiyorum derleyici boşlukları ve // ifadesinden sonraki kısımları atlar. // genelde yorum belirtmek için kullanılır. kod öbeklerinin sonuna yada başına // şeklinde açıklama satırları yazabilirsiniz.


neyse konuyu fazla dağıtmadan devam edelim.

scanf ise klavyeden veri girişini sağlayan ve onu bir değişkene atayan fonksiyondur. scanf kalıbı ise scanf("%d",&degisken_adi); şeklindedir. hemen incelersek burda kafamızı karıştırabilecek birkaç nokta olabilir. %d değişkenin tipini belirdir. okunacak değişkenin ne türde olduğunu gösterir. (değişken tipleri ile ilgili bir makale aşağıda vereceğim) daha sonra atama operatörü (ampersant) ile klavyeden okunan değer değişkene atanır.

Veri Tipi Bellek Boyutu Veri Aralığı Açıklama
int 16 bit, 2 byte -32768 ile 32767 Tamsayı Değişkenler
char 8 bit , 1 byte -128 ile 127 Karakter Değişkenler
float 32 bit, 4 byte 3.4x10-38 ile 3.4x10+38 Tek hassasiyet, 7 digit
double 64 bit, 8 byte 1.7x10-308 ile 1.7x10+308 Çift Hassasiyet, 15 digit

veri tiplerini de böylece görmüş olduk.

%d -> int
%c -> char
%f -> float
%lf -> dobule

daha çeşitli değişken tipleri mevcut. bunları lazım oldukça göreceğiz.

şimdi prgrama devam edelim. main'in altında ilk olarak değişkenleri tanımlamalıyız. kullanacağımız değişkenler; yol uzunluğu tam sayı, zaman tam sayı ve ortalama hız ( yol / zaman olacağı için kesirli sayı kullanmalıyız.)

değişkenler tanımlandıktan sonra kullanıcıdan veriler alınmalı ve ortalama hız hesaplanarak ekrana yazdırılır ve program sonlanır.

programı derlediğimizde hemen kapanması gibi bir sorunla karşılaşabilirsiniz. (yukarıdaki kodlarda getch() ifadesi kullanıldığı için kapanmayacaktır.)

getch() ifadesi programın sonuna eklenerek yada return 0; ifadesi eklenerek hallolabilir bu sorun.

not: getch ifadesi için conio.h öncü dosyasını eklemeniz gerekmektedir.