30 Aralık 2009 Çarşamba

Web Sayfasına Swf Eklemek

Hazırladığınız / indirdiğiniz swf dosyalarınızı aşağıdaki kod yardımı ile sayfanıza ekleyebilirsiniz:

27 Aralık 2009 Pazar

Java'da Hashtable'a Class eklemek

Bir önceki kod örneğinde java'nın hazır hashtable'ını kullanmıştık. Şimdi ise kendi oluşturduğumuz bir class'ın hash tablosunda nasıl yer alacağını inceleyelim.

Şirket adlı bir class oluşturalım ve bu class'da bir şirkete ait temel bilgileri tutalım.

Örnek class:

public class sirket {
// hash table'da tuttuğumuz şirket class'ı. şirket bilgilerini içerir.

public String sir_ad;
public String sir_adres;
public int sir_tel;
public int sir_fax;
public String sir_eposta;
}


* Şimdi bu class'ı oluşturacağımız hash tablosuna şirket adına göre nasıl ekleyeceğimizi inceleyelim.

Hashtable sirketler = new Hashtable();



kısmında String key tipimizidir. Key değeri hashtablosuna verilerimizi neye göre ekleyeceğini belirler. Biz şirket adını kullanacağımız için String olarak oluşturuyoruz yeni hash tablomuzun key değerini.

Birde eklemeye bakalım.

sirket s=new sirket();


Yeni bir şirket nesnesi olutşuralım ve bu şirket verilerini girelim. (s.sir_ad,s.sir_adres...)

Son olarak yeni sirket tipindeki s'i hash tablomuza şirket adına göre eklemek kaldı.

sirketler.put(s.sir_ad, s);


Böylece sirketler adlı hashtablomuza şirket sınıfı şirket adına göre eklenmiş oldu.

Bir sonraki yazımda hash tablosundaki değerleri enumeration ile dolaşarak arama ve editleme gibi fonksiyonların yazımını anlatacağım.

tyln

26 Aralık 2009 Cumartesi

Excel Formülleri

Exel'de formüller bir veya daha fazla hücredeki verileri kullanarak yeni sonuçlar üretmemizi sağlayan ifadelerdir.

Exeldeki formüllerde aynı kitaptaki farklı hücreler, farklı sayfalardaki hücreler veya farklı kitapların hücrelerindeki verileri kullanabiliriz.

Formül yazarken nelere dikkat etmeliyiz?

Formüller işlem yapılacak hücrelere tıklandıktan sonra fx çubuğuna girilirler.Her formül = işareti ile başlar.

Karakter dizileri ve boşluklar "" işaretleri içinde yazılır. Örnek: "kod","blog"..

Hücre içindeki değer sürekli kullanılacaksa hücre sabitlenmelidir. Hücreyi sabitlemek için satır ve sütun adlarının önüne $ işareti konur.

25 Aralık 2009 Cuma

Bloğunuzda yazılarınız için devam linki oluşturma

Yazdığınız yazının istediğiniz kısmının (özetinin) ana sayfada görüntülenmesini ve kalanına isteğe bağlı devam linki ile ulaşılmasını sağlamak için özet olarak belirleyeceğimiz kısımdan sonra

<1!-- more --1> (1 rakamlarını silin)


kodunu ekliyoruz.

24 Aralık 2009 Perşembe

Tr uzantılı alan adları için gerekli belgeler

Tasarımını yaptığım bir site için almam gereken tr uzantılı tescil adı için gerekli belgeler:

23 Aralık 2009 Çarşamba

Hashtable in Java

Java'da hazır hashtable metodu kullanımına dair aşağıda bir örneği sizlerle paylaşıyorum. Hash tablsouna değer ekleme ve değer değiştirmenin nasıl yapılacağını aşağıda basit bir şekilde test edebilirsiniz.

import java.util.*;

class HashTest
{
public static void main(String args[])
{
Hashtable maas = new Hashtable();

maas.put("Ali Yılmaz", 1050.25);
maas.put("Veli Çetin", 1578);
maas.put("Tom Smith", 1111.10);
maas.put("Jane Baker", 1234.9);

System.out.println(maas.get("Veli Çetin"));

double m = (Double)maas.get("Tom Smith");
maas.put("Tom Smith",m+150);

System.out.println(maas.get("Tom Smith"));

// 1578
// 1261.1


}

}

Action Script 2.0 ile Attach Movie ve Remove Movie kullanımı

Action Script 2.0'da attachmovie özelliği ile swf'mize istediğimiz an bir movie clip çağırabiliriz.

Bu sayede flash sitelerimiz için hoş pop-up window'lar yada basit resim galerileri yapabiliriz.

Şimdi nasıl kullanıldığına bakalım. Öncelikle bir adet movieclip yapalım. Örneğin bu movie clip sadece bir resimden oluşsun. Movieclip'imizin adı "resim1" olsun.

Daha sonra bir adet buton yapalım ve butonumuz da kapat olsun.

Daha sonra movieclip'imizi stage'imizden silelim. Zamanı geldiğinde attachmovie ile çağıracağız.

Şimdi bir başka buton oluşturalım. Bu butona tıklandığında da movieclip'imiz ekrana gelsin.

Butonu oluşturduktan sonra actions kısmına aşağıdaki kodları yazıyoruz:

on (release) {

this.attachMovie("resim1","resim1_mc",1);
resim1_mc._x = 360;
resim1_mc._y = 1650;


}


Attachmovie fonksiyonunun parametrelerine bakarsak:
1. parametre çağıracağımız movieclip'in adını
2. parametre ekranda yeni oluşturulan movieclip'in adını
3. parametre ise katmanı göstermekte.

Böylece butona tıkladığımızda resim1 adlı movieclip'in kopyası resim1_mc olarak ekrana gelecektir.

resim1_mc.x ve resim1_mc.y ile resmin ekrandaki koordinatlarını ayarlıyoruz.

Şimdi moveiclip'imizi editleyelim. Properties kısmından movieclip'in linkage kısmının aktif hale getirmeyi unutmayın.

Kapat butonumuzun actions kodlarına ise aşağıdaki kodları yazıyoruz ve böylece tıklandığında movieclip ekrandan kalkıyor.

on (release) {
this.removeMovieClip("resim1_mc");
}


Bu metot ile şık popup çalışmaları yapabiliriniz.

Herkese kolay gelsin.

tyln

11 Aralık 2009 Cuma

Java'da Bir Ağaçtaki Düğümlerin Düzeylerini Yazdırma

Displaying level of each node in binary tree in java

Javada oluşturduğunuz bir binary tree'nin her düğümünün düzeyini ekrana yazdırmak için aşağıdaki algoritmayı yada java kodunu kullanabilirsiniz.

Kod:

public void duzey_bul(agacDugumu etkin,int duzey)
{
if(etkin!=null)
{
duzey=duzey+1;

duzey_bul(etkin.leftChild,duzey);
System.out.println(" "+etkin.ad+" "+duzey+". duzeyde" );
duzey_bul(etkin.rightChild,duzey);
}

}


Algoritma:

Fonksiyonumuzda özyinelemeden yararlanacağız. Etkin düğüm sırasıyla bir düğümün sol çocuğu ve sağ çocuğu olarak ağaç dolaşılır. Eğer etkin düğüm null'dan farklıysa düzey bir arttırılır ve ekrana yazdırılır.

Eğer ağacın derinliğini de bulmak istiyoranız düzeylerden en büyüğünü math kütüphanesindeki max bulan hazır fonksiyon ile döndürerek ağacın düzeyini elde edebilirsiniz. Ayrıca her null olmayan etkin yeni bir eleman olacağından eleman sayısı da bir arttırılarak ağacın toplam eleman sayısı bulunabilir.

Zaman Yönetimi

Zaman yönetimi hakkında bir ppt. Zamanınızı ayırıp incelediğinizde eminim zamanınızı daha verimli kullanmak adına bir başlangıç yapacaksınız. :)

İndir

2 Aralık 2009 Çarşamba

Artış Oranı Fonksiyonları

Artıs Oranı Fonksiyonları
O(1) : Sabit zaman
Örnek : n elemanlı bir dizinin i. elemanına bir deger atanması O(1)’dir. Çünkü bir
elemana indisinden dogrudan erisilmektedir.
O(n) : Dogrusal zaman
Örnek : n elemanlı bir dizinin tüm elemanlarının ekrana yazdırılması O(n)’dir.
Örnek : sıralı olmayan bir dizideki (listedeki) elemanlardan birinin aranması O(n)’dir
(en kötü durumda da, ortalama durumda da).
O(log2n) : O(1)’den fazla O(n)’den azdır.
Örnek : Sıralı bir listenin elemanları içinde ikili arama (binary search) uygulanarak
belirli bir degerin aranması O(log2n)’dir.
O(n2) : kinci dereceli zaman
Örnek : Basit sıralama algoritmalarının birçogu (selection sort gibi) O(n2)’dir.
O(n log2n) : Bazı hızlı sıralama algoritmaları O(n log2n)’dir.
O(n3) : Kübik zaman
Örnek : Üç boyutlu bir tamsayı tablosundaki her elemanın degerini artıran algoritma.
O(2n) : Üstel zaman, çok büyük degerlere ulasır.

Alıntıdır. (Yrd Doç Dr Aybars Ugur)

30 Kasım 2009 Pazartesi

Odt dosya uzantısı nedir?

Odt uzantılı dosyalar open office programı tarafından hazırlanmış dosyalardır. Open office programı ile bu dosyaları açabilirsiniz.

Open office için aşağıdaki linki ziyaret edebilirsiniz:

tıkla

Yada open office kurmayı tercih etmiyorsanız word'e OpenXML/ODF Translator paketi kurarak da bu dosyaları açabilirsiniz

Paketi indirmek için tıklayın

26 Kasım 2009 Perşembe

Java class örneği

Java ile basit bir class örneği yapımını göstereceğim. Deneyim adında bir class tanımlayacağız ve bu class içinde işyerine ait ad,adres ve işyerindeki pozisyon bilgilerini tutacağız.

İşte deneyim class'ımız:

public class deneyim { // class oluşturuldu

public String yer_ad; // class'ta tutulacak bilgiler
public String yer_adres;
public String pozisyon;

public deneyim() // yapıcı / constructor
{
yer_ad=null;
yer_adres=null;
pozisyon=null;
}

}


Yapıcı fonksiyonumuz class adı ile aynı olup program içinde deneyim class'ı çağırıldığı an boş bir deneyim alanı oluşturur.

Resimlerin Köşelerini Yuvarlayın

Aşağıdaki tanıtacağım site ile resimlerinizin köşelerini istediğiniz boyutta kolayca yuvarlayabiliyorsunuz. Photoshop ile uğraşmanıza gerek kalmıyor.

Adres: http://www.roundpic.com/

İster gözat seçeneği ile bilgisayarınızdan ister ise url kısmından resimlerinizi boyutlarını ayarlayıp kolayca yuvarlayabilirsiniz.

Aynı zamanda site sizlere bannar kodunu da veriyor.

Photoshop'tan daha kolay :)

24 Kasım 2009 Salı

Alcohol %120 nedir ? Alcohol ile sanal sürücü oluşturma

Alcohol %120 bir sanal sürücü oluşturma programıdır.

Alcohol %120 diğer sanal sürücü programlarına göre daha başarılı bir programdır. İndirdiğiniz oyunlar için kolaylıkla sanal sürücü oluşturabilirsiniz.

Öncelikle programı aşağıdaki linkten indirelim ve kuralım.

İndir

Programı kurduktan sonra Alcohol programını açıyoruz ve sanal sürücü yapmak istediğimiz dosyayı programa sürükleyip bırakıyoruz.

2. adım olarak ise attığımız dosyaya sağ tıklayıp sanal sürücüye at diyoruz ve işlemimizi tamamlıyoruz.

Kolay gelsin

12 Kasım 2009 Perşembe

Dijital Saat uygulaması

Action Scrtip ile dijital saat uygulaması hazırlayarak sitenizde kullanabilirsiniz.

Şimdi çalışmamıza bir adet dynamic text ekleyelim ve var değerini saat olarak ayarlayalım. Daha sonra text'imizi movieclip'e çevirelim ve actios kısmına aşağıdaki kodu yazalım:

onClipEvent (enterFrame) {
zaman = new Date()
saat = zaman.getHours() + ":" + zaman.getMinutes() + ":" + zaman.getSeconds()
}


dijital saatimiz hazır.

11 Kasım 2009 Çarşamba

Action Script 2.0 ile kayan yazı yapalım

Bir önceki yazımda action script 2.0 ile dizi kullanımından bahsetmiştim. Şimdi bu stringlerden oluşan dizimizi gerçek anlamda bir proje içinde kullanalım. Yaptığımız template'imize bir adet kayan yazı ekleyelim şimdi.

Öncelikle bir çalışma sayfası açıyoruz ve içine bir adet movie clip ekliyoruz. Movie clip'imizin adı "kayan_yazi" olsun.

MovieClip'imize bir adet de buton ekleyelim. Butonun üzerine geldiğinde yazımız en başa alınsın ve dursun. Butonun üzerinden mouse'u çektiğimizde ise kaldığı yerden kaymaya devam etsin.

Daha sonra kayan yazıya bir adet arka plan ekliyoruz. Time line'a bir adet layet daha ekleyelim ve ona da bir adet dynamic text koyalım. Dynamic textimizin instance name'ini "kayan" olarak ayarlayalım.

Şimdi yazımızı time line'da kaydıralım. (Action Script ile de kaydırmayı göstereceğim ilerleyen yazılarımda)

İlk frame'de dynamic textin ilk konumunu belirleyeim. Daha sonra bir miktar frame atlayalım ve son frame'e keyframe ekleyelim. Keyframe'imizde dynamic textin gitmesini istediğimiz son yerini ayarlıyoruz ve classic tween hareketi ekliyoruz.

Şimdi gelelim dynamic textimize birşeyler yazmaya. Timeline'dan ilk frame'e gelelim ve actions'ı açarak bir adet yeni array oluşturalım.

var yazilar:Array=new Array("yazi1","yazi 2","yazi 3","yaz, 4");


Ardından bir arraydeki yazılardan rasgele birtanesini seçelim:

rasgele=random(yazilar.length);


Kayan dynamic text'imize seçtiğimiz yazıyı yazalım:

kayan.text=yazilar[rasgele];


Daha sonra butonumuzun Actions'ına gelelim ve

on (rollOver) {
gotoAndStop("label");
}
on (rollOut) {play();
}


kodlarını ekleyelim. Buradaki label butonun üzerine gelindiğinde hangi pozisyonda yazımızın durmasını istiyorsak orayı temsil edecek. O frame'e giderek label'ini değiştirip kodunuza ekleyebilirsiniz.

Çalışmanın kaynak dosyalarını ilerleyen günlerde siteye koyacağım.

Şimdilik bu kadar. kolay gelsin.

tyln

Action Script 2.0 ile dizi örneği

Action script 2.0 ile bir dizi örneği yapalım. Stringlerden oluşan bir adet dizi tanımayalım ve diziye string elemanlar atayalım. (Hazır Array sınıfını kullanıyoruz)

yazılar = new Array();

yazilar[0]="Yazı bir";
yazilar[1]="Yazi iki";
yazilar[2]="yazi uc";


böylece yazılar dizimize 3 adet eleman atamış olduk. İndislere dikkat!

yazilar = new Array("Yazi1","Yazi iki","yazi uc");


2. gösterim de birinci ile aynıdır. Bir adet yazilar dizisi oluşturur ve elemanlar atar.

2 Kasım 2009 Pazartesi

Postfix ifadelerin sonucunu hesaplayan algoritma

Algoritma : (Bir postfix ifadenin sonucunu hesaplar)
opndstk = the empty stack;
// scan the input string reading one element at a time into symb
while (not end of input) {
symb = next input character;
if (symb is an operand)
push(opndstk,symb);
else {
// symb is an operator
opnd2 = pop(opndstk);
opnd1 = pop(opndstk);
value = result of applying symb (case *,/,+,-) to opnd1 and opnd2
push(opndstk,value);
} // end else
} // end while
return(pop(opndstk));

Fonksiyon ve Metot Çağırımlarında Yığıtların Kullanımı

Fonksiyon ve Metot Çagrımları - I

Yıgıtlar, listelerin ters sırada yazdırılması, palindrom (okundugunda ve
tersten okundugunda aynı sonucu veren karakter dizisi) benzeri
yapıların bulunması, bir ifadedeki parantez gibi sembollerin
geçerliliginin test edilmesi, ifadelerin sonuçlarının hesaplanıp
degerlerinin elde edilmesi, infix ifadelerin postfix ifadeye
dönüstürülmesi gibi amaçlarla kullanılabildigi gibi, programlama dili
derleyicileri (compiler) fonksiyon çagrımlarında da yıgıtlardan
yararlanırlar.
Bir fonksiyon çagrıldıgında, çagıran fonksiyonun yerel degiskenleri
sistem tarafından kaydedilmelidir; aksi halde çagrılan fonksiyon
çagıran fonksiyonun degiskenlerini ve degerlerini ortadan kaldıracaktır.
Ayrıca çagıran fonksiyonda kalınan nokta (geri dönüs adresi), çagrılan
fonksiyonun bitmesinden sonra geri dönmek üzere tutulmalıdır.

Soyut olarak bakıldıgında, yeni bir fonksiyonun çagrılması ile çagıran
fonksiyonun degiskenleri ve geri dönülecek adres bir kagıda kaydedilir
ve daha önce çagrılan fonksiyonlara iliskin bilgilerin tutuldugu
kagıtların üzerine konulur. Bundan sonra denetim çagrılan fonksiyona
geçer. Kendi degiskenlerine yer açarak onlar üzerinde islemler
yapılmasını saglar. Fonksiyondan geri dönülecegi zaman en üstteki
kagıda bakılıp degiskenler üzerinde ilgili degisiklikler yapılarak geri
dönüs adresine atlanır. Derleyici bu islemleri kagıt yerine yıgıt
kullanarak gerçeklestirir.

alıntıdır.

Java Proje

Temel java bilgileri ile hazırlanmış bir projedir. Proje açıklaması,algoritması ve kaynak kodları da içindedir.

Eclipse ortamında hazırlanmıştır.

Download

1 Kasım 2009 Pazar

Java ile Kutulama

Java'da Kutulama (Boxing) ve Kutudan Çıkarma(UnBoxing) Kavramları:

Kutulama (Boxing): Bir temel veri tipini sarmalayıcı sınıf içine koyma işlemine kutulama denir.

Integer KutuSayi= new Integer (sayi);


Kutudan Çıkarma (UnBoxing): Sarmalayıcı sınıf içinden ilkel veri tipini geri alma işlemine ise kutudan çıkarma (UnBoxing) denir.

int y = KutuSayi.intValue();


İlkel Tip --> Sarmalayıcı Sınıf

byte --> Byte
short --> Short
int --> Integer
long --> Long
float --> Float
double --> Double
char --> Character
boolean --> Boolean

29 Ekim 2009 Perşembe

Flash Banner

Kendi hazırlamış olduğum flash banner'ın fla'sını sizlerle paylaşıyorum. 800*600 templatelerinizde ve çalışmalarınızda rahatlıkla kullanabilirsiniz. ActionScript 2.0 ve flash cs4 ile hazırlanmıştır.

Özellikleri:

-logo header ve slogan
-header ve slogan animasyonu
-home ve email butonları
-menu
-menu animasyonu

NOT: Fontlar da rar'dadır.

DOWNLOAD

NOT2: Para ile satılamaz!

C Sharp Textbox ve label ile 4 işlem

C sharp ile textbox'a gireceğimiz bir sayı ile labelimizdeki sayıyı toplayıp tekrar labela nasıl yazdıracağımıza bakalım şimdide.

Formumuza bir adet buton ve bir adet de label ekleyelim.

Butonumuza çift tıklayalım ve kod satırına geçelim.

Kod satırında form1 load'a

textbox1.text="0";


yazalım. Ardından butonumuzun { } lerine gelelim ve

dobule tipinde toplam adında bir değişken tanımlayalım.

double toplam;

toplam=Convert.ToDouble(Convert.ToDouble(textbox1.text)+Convert.ToDouble(label1.text));
label1.text=toplam.ToString();


Böylece text boxa girdiğimiz sayı ile labeldeki sayımızı toplayıp tekrar labele yazdırmış oluyoruz.

20 Ekim 2009 Salı

ScrollPane ile resimleri görüntüleme

Flash çalışmalarınıza eklediğiniz scroll bar sadece dynamic textlerinizi görüntülemenizde sizlere yardımcı olabilir. Eğer eklediğiniz bir resimi yada movie clip'i sidebarlarla kontrol etmek istiyorsanız scrollpane component'ı kullanmalsınız.

Öncelikle scene1'e bir adet resiml ekleyelim ve bunu movie clip olarak symbol'e çevirelim. Daha sonra scene1 den kaldıralım. (Kütüphanemizde mevcut)

Şimdi kütüphaneden movie clip'e sağ tıklayalım ve properties ekranından ayarlarımızı yapalım.

Linkage kısmından "Export for Action Script" ve "Export in Frame1" sekmelerini işaretleyeliem ve bir adet name girelim.

Movieclip ile işimiz bitti.

Şimdi rekrar sayfaya dönelim ve window / components sekmesinden bir ader scroll pane ekleyelim. Scrollpane'i istediğimiz yere ve boyuta getirelim.

Component inspector'dan content path'e movie clip'imizin ismini yazalım. scrollpane'in özelliklerini yine aynı pencereden ayarlayabilirisniz. (yatay durum çubuğu,dikey durum çubuğu,sürüklenebilme değeri vs..)

Kolay gelsin herkese

14 Ekim 2009 Çarşamba

Flash ile buton animasyonu yapımı

Flas işe yaptığınız butonlara animasyon koymanız görsellik açısından sitenize + sağlayacaktır. Şimdi bir butona nasıl efekt ekleyeceğimizi görelim.

Bu yazımda buton'un üzerine gelince büyüyen ve üzerinden mouse'umuzu çekince küçülen bir adet animasyon yapacağız.

Şimdi ilk olarak bir adet buton ekleyelim ve çalışmamıza yeni bir movie clip ekelyelim. İlk frameimize bir adet rectange tool ile dikdörgen çizelim ve properties kısmından height ve weight değerlerini 1 e eşitleyelim.

10 frame ileriye bir adet keyframe ekleyeim ve eklediğimiz keyframedeki dikdörtgenimizin genişlik ve yükseklik değerlerini ayarlayalım.

Şimdi tekrar 1. frame'e gidelim ve shape motion ekleyelim.

Şimdi 10. frame e geri dönelim ve 20. frame'e bir keyframe daha ekleyelim ve dikdörtgenimizin genişlik ve yüksekliğini tekrar 1 yapalım ve bir shape motion daha ekleyelim.

Daha sonra actions penceremizi açıp İlk frame'lere ve keyframelere stop(); kodunu ekleyelim.

Butonumuzun actions'ına gelelim ve aşağıdaki kodu yazalım

on (rollOver) {
butonAni.gotoAndPlay(1);

}
on (rollOut) {
butonAni.gotoAndPlay(11);
}

Not: Movieclip'imizini instance name'ini ayarlamayı unutmayın. Yada örnekteki kodu kullanacaksanız butonAni yapabilirsiniz

Bir diğer yazımda eklediğimiz diktörgeni mouse ile butonumuza takip ettirmeyi göstereceğim.

tyln

11 Ekim 2009 Pazar

Parite kod nedir?

Parite kod kısaca hata kontrol kodudur. 0 ve 1 lerden oluşan bitsystemlerde 1 bitlik hataları tespit etmeye yarayan kontrol kodudur.

Even ve odd parite olarak 2 ye ayrılır.(Tek parite,çift parite)

Örneğin 0001 0001 düzenindeki bit sistemin çift paritesi 0 tek paritesi 1'dir. Bit sayısını tek yada çift olacak şekilde 0 yada 1 eklenerek kod kontrol edilir.

10 Ekim 2009 Cumartesi

Css dosyanızı html sayfanıza eklemek

Yazdığınız css dosyanızı html sayfanıza eklemek için aşağıdaki yöntemi izleyebilirsiniz.

link media=screen href="css_name.css" type=text/css rel=stylesheet>


yada

STYLE type=text/css media=all>@import url( all.css );


yukarıdaki kodlar ile css dosyanızı html yada php çalışmalarınıza ekleyebilirsiniz.

9 Ekim 2009 Cuma

C sharp ile form görüntüleme

Form1 e bir buton ekleyip butona tıkladığında yeni bir form nasıl açılır?

Öncelikle Form1 e bir adet buton ekleyelim. Daha sonra yeni form2 mizi ekleyelim design penceremize ve tasarmını yapalım. Sonra buton1 imizin kod satırınıa aşağıdaki kodu ekleyelim:


Form yeni = new Form2(); // yeni adında yeni bir form2 oluşturuyoruz
yeni.Show(); // show metodu ile yeni formumuzu gösteriyoruz.

Bu kadar basit. Kolay gelsin herkese.

24 Eylül 2009 Perşembe

CDATA nedir? xml

Xml kodlarında karşılaştığımız bir terimdir CDATA. genelce ![CDATA[metin]] şeklinde kullanılır. Xml'in itemlerinde bazı karakterleri kullanmanız (örn: &) mümkün olmamaktadır. Eğer gireceğiniz metinde & gibi karakterler kullanmanız gerekiyorsa yukarıdaki örnekte olduğu gibi CDATA özelliğini kullanarak tüm karakterleri yazılarınıza ekleyebilirsiniz.

23 Eylül 2009 Çarşamba

Blogger sorunu

Ülkemizde de bir çok kullanıcısı olan blogger son birkaç haftadır açılmayan sayfalarlar uğraştırıyor kullanıcıları. Bu sorun hem blog yazarlarını,hem blog takipçilerini ve özellikle bloglardan düzenli gelir elde eden yayıncıları vurmuş durumda.

Peki blogger sorununun altına ne yatıyor?

Suçlu open dns diyebiliriz. Open dns kullanan kullanıcılar belli saatler (ki sabaha karşı saatleri kapsıyor) dışında blogger sitelerine erişemiyor. Açılmayan sayfalar ve bağlanılmayan serverlarla karşılaşan kullanıcıların yapabiecekleri ilk adım open dns değil internet servis sağlayıcılarının verdiği otomatik dnsleri kullanmalarıdır.

Fakat bu da kesin bir yol değil. Daha kesin çözümleri de buradan yayınlayacağım.

Şimdilik bu kadar.

16 Eylül 2009 Çarşamba

Meta Tagları ne işe yarar? Nasıl Kullanılır?

Meta tagları sitenizin index'ine yada tercihe bağlı diğer sayfalarına yazdığınız sayfa hakkında bilgiler içeren kod parçacıklarıdır. Sitenizin açıklamasını, anahtar kelimelerini, classını meta tagları ile tanımlayarak arama motorlarının siteniz hakkında daha rahat bilgi edinmesini sağlayabilirsiniz.

Şimdi kullanımına bakalım: (blogumuz için birkaç adet meta kodu yazalım)


meta name="Description" content="Programlama hakkında bilgiler"
meta name="Keywords" content="bilgisayar bilimleri,actionscript,c,c++"
meta name="Classification" content="bilgisayar bilimleri,programlama,web tasarım"


İlk metamız ile sitemizin açıklama kısmını tanımladık. 2 meta ile sitemizin anahtar kelimelerini belirttik ve son meta kodu ile de sitemizin classını tanımladık.

Ne işe yarar?

Görüldüğü üzre meta tag kullanımı oldukça basittir. Meta taglar yukarıda da bahsettiğim gibi sitenizin arama motorları tarafından daha kolay anlaşılarak daha üst sıralarda kullanıcının karşısına çıkmanızı sağlar.

tyln

15 Eylül 2009 Salı

Google Chrome'u Xp Sp3'te nasıl çalıştırırım?

Bildiğiniz üzere Google Chrome Xp sp3'lerde çalışmıyor. Sebebini özetleyecek olursam Ctfmon.exe adlı işlem chrome'un çalışmasını engellemekte. Yapmanız gereken ise birkaç dll'den işlemi kaldırmak.

Şimdi aşağıdaki işlemleri sırayla uygulayalım;

1)başlat / çalıştıra gidelim
2)çalıştır kısmına
Regsvr32.exe /u msimtf.dll
yazalım ve ok diyelim.
3)şimdi 2. dll'miz için de aynı işlemleri tekrarlayalım.
4)çalıştır kısmına bu sefer
Regsvr32.exe /u msctf.dll
yazalım ve ok diyelim.
5)bilgisayarı yeniden başlatın ve chrome keyfini yaşayın.

kolay gelsin.
tyln

14 Eylül 2009 Pazartesi

Text Box'ları temizlemek

Çok basit bir kodu paylaşacağım şimdi sizlerle. Programlama dillerinde geliştirdiğiniz arayüzlere koyduğunuz text boxları nasıl temizleyebilirsiniz?

Örneğin bir adet visual basic projesine deneme adında bir text box koydunuz. Bir adet de buton koyun ve butonun kod penceresine

deneme.text="";


kodunu yazın. Bu text box'ınızı temizleyecektir.

Bir örnek de action script 2.0'dan olsun. Bir adet dynamic text koyun scenenize. Bu textin instance name'ini deneme yapın. Bir buton koyun ve butonun on realse fonksiyonunu ayarlayın ve küme parantezlerinin içine

deneme.text="";


kodunu yazın. Gördüğünüz gibi dynamic textiniz temizleniyor.

13 Eylül 2009 Pazar

Flash Ses Kontrol Butonu Yapımı As 2.0

Action script ile flash çalışmalarınıza eklediğiniz bir ses dosyasını kontrol edecek bir butonun nasıl yapıldığına bakalım şimdide.

Öncelikle yeni bir çalışma başlatalım ve çalışmamıza 2 adet buton (on ve off) ve 2 adet de movie clip oluşturalım. Movie cliplerden biri butonlarımız için biri de ses dosyamız için. Birinin adını soundClip, diğerinin adını da butonClip olarak değiştirelim.

Şimdi ilk olarak soundClip'imizle başlayalım:

- 3 adet keyframe ekleyelim ve 3'ünün de actions'ına
stop();
kodunu koyalım.

- İlk frame'imize ses dosyaımızı import edelim. (Dosya sekmesinden import>import to library ile ses dosyamızı kütüphanemize import ediyoruz. Daha sonra 1. frame'e ses dosyamızı kütüphaneden sürükleyerek ekliyoruz. Frame'in özelliklerinden de loop'u parçanın kaç kez tekrar etmesini istiyorsak o sayıya ayarlıyoruz. Sync özelliğini ise event'a ayarlıyoruz.)

- Frame2'nin actions'ına
gotoAndStop(1);
kodunu ekliyoruz.
- Frame3'ün actions kısmına ise
gotoAndPlay(1);
kodunu ekliyoruz.

Şimdi ise butonClip'imizi hazırlayalım:

- 2 adet keyframe oluşturuyoruz ve actions'larına
stop();
kodunu koyuyoruz.
- Frame1'e başlangıçta hazırladığımız off butonumuzu koyuyoruz ve actions'ına aşağıdaki kodları yazıyoruz.

on (release) {
tellTarget ("../music") {
stopAllSounds();
}
}
on (release) {
nextFrame();
}


- Frame2'mize ise on butonumuzu ekliyoruz ve actions'ına aşağıdaki kodları yazıyoruz:

on (release) {
tellTarget ("../music") {
nextFrame();
}
}
on (release) {
prevFrame();
}


- soundClip'imizi movie'mize ekliyoruz ve instance name'ini
music
olarak ayarlıyoruz.
- butonClip'imizi de movie'mizde istediğimiz bir yere yerleştiriyoruz.
- ctrl+enter ile moviemizi çalıştırıyoruz.

Aşağıdaki adresten örnek kaynak kodlara ulaşabilirsiniz:
kaynak dosyaları indir

Herkese kolay gelsin.

Not: Anlatım tamamen bana aittir. Alıntı yaparken kaynak belirtiniz.

12 Eylül 2009 Cumartesi

Çalınan msnimi nasıl geri alabilirim?

Son zamanlarda çok sık bu soruyla karşılaşıyorum. O yüzden basit bir makale ile tavsiye ettiğim yönetmimi yazayım. Şöyle ki hiç öyle hack mack işlerine girmeyin geri almak için. Zira sizi hackleyip msninizi çalabilecek kapasitedeki biri o msni size kolay kolay geri vermez. Bunun dışında dhaa kolay bir yola başvurmanızı tavsiye ediyorum.

hotmail.com'dan giriş yaparken forgat my password (parolamı unuttum) seçeneğine tıklayın. devam dediğinizde karşınıza 2 seçenek gelicek. Gizli soru ve lokasyon seçenekleri ile şifrenizi geri alabilirsiniz. Bir diğer seçenek ile mail yoluyla geri alabilirsiniz.

Eğer gizli sorunuzun cevabını biliyorsanız ve girişte kullandığınız ülke/posta kodu 2 lisini hatasız girebilecekseniz bu seçenekle şifresiniz 0 layabilrisiniz.

Diğer seçenek ise mail yoluyla şifrenizi geri alma. Bu yolda ise size alternatif bir mail adresi girmeniz isteniyor. Alternatif mail girdikten sonra probleminizi seçiyorsunuz. sign and passowd seçeneğinden probably i was hacked seçeneğini seçerek, gerekli alanları doldurup destek mail'ı isteyebilirsiniz.

Destek mail'ında size 16 adet soru gelecek. Bunlardan birkaçı: ad soyad,alternatif email, concact kişileriniz, son login olduğunuz tarih,ip vb sorular. Bunları kesinlikle kafanızdan atmayın. Bilmediklerinizi cant remember şeklinde doldurun. Yeterli sayıda doğru cevaba ulaştığınızda mail'ınızı geri alabilirsiniz.

Kolay gelsin.

11 Eylül 2009 Cuma

Action Script 2.0 ile Php Contact Form yapımı

Uzun zamandır bloguma yazı yazmıyordum. Daha doğrusu yazacaklarımı biriktiriyordum. Şimdi birşeyler karalama vakti geldi.

Bu yazımda flash cs4 kullanarak flash sitelermize / tepmlatelerimize nasıl contact form yapacağımızı görelim.

Öncelikle php mail send kodlarına ihtiyacımız var. Size yazı sonunda kaynak olarak bunu vereceğim. Şimdilik php sender'ımız var farz ederek yazıma devam ediyorum. (Bu arada indirdiğiniz php dosyası ile main.swf'niz aynı dizinde olmalı. Hatırlatayım sonra neden çalışmıyor diye kafayı yemeyin :))

Şimdi scenemize boş bir frame ekleyelim. 3 adet inputbox,1 adet dynamic text ve bir adet buton ekleyelim.

1. butonumuzun instance name'i sender_box 2.sinin subject_box ve 3. sünün ise message_box olarak değiştirelim. Dynamic text'imizin instance name'ini ise statu olarak ayarlayalım. Statu mail'imizin hatalı olup olmadığını yada gönderilip gönderilmediğini ekrana yazsın.

Butonumuzun adını da send_btn olarak değiştirelim.

Şimdi frame1'in Actions kısmına aşağıdaki kodları yazalım.

stop();
statu.text="New Mail";
System.useCodepage = true;

Frame1 deki kodları incelersek stop ile movie'yi durduruyoruz. Statümüzü new mail olarak değiştiriyoruz.

Şimdi send_btn'umuzun actions kısmına ise şu kodları yazıyoruz.

on (release) {
statu.text="click";
my_vars = new LoadVars();
my_vars.sender = email_box.text;
my_vars.subject = subject_box.text;
my_vars.message = message_box.text;
if (my_vars.sender != "" and my_vars.subject != "" and my_vars.message != "") {
my_vars.sendAndLoad("mailer.php", my_vars, "POST");
statu.text="sending";
} else {
statu.text="error";
}
my_vars.onLoad = function() {
statu.text="sent";
};
}

Şimdi de send butonumuzu inceleyelim. Kullanıcıdan gönderen mail adresi,başlık ve mesajı alıp mailer.php ile mail adresinize mail gönderiyor if yapısı. Eğer mail başarılı gönderilmişse statü'yü sent yapıyor. Else yapısı ise doldurulması gereken alanlardan biri boş ise kullanıcıya hata vererek doldurmasını istiyor.

Ufak hatırlatmalar:

mailer.php'deki email@yourserver.com kısmını kendi mail adresiniz ile değiştirmelisiniz. Ayrıca hostunuz tarafından sağlanan geçerli bir mail adresi girmelisiniz.

Kaynak Dosyalar: indir


Herkse kolay gelsin.

tyln

50 YTL'ye İşletmenize Özel Stok Programı

Eğer çevrenizdeki stok programları size pahalı geliyorsa, üstelik kullanacağınız özellikler sınırlı ise kendi programınızı yazdırmanın zamanı gelmiştir. Emlak, market, toptancı, bakkal vb işletmelere 75 ytl'ye stok programını yazılır.

Özellikler:

* yeni kayıt
* kayıt arama
* kayıt sil
* kayıt sırala
* database

isteğe özel admin şifresi

Ayrıntılar için tyln@yahoo.com adresine mail atabilirsiniz

22 Temmuz 2009 Çarşamba

Action Script 2.0 Movie Clip içinde Buton

Action script ile uğraşmaya yeni başlayan arkadaşların ilk karşılaşacakları sorun buton'a action script ile hedef göstermek olacaktır. Movie clip'imizin içine buton koymadan önce butona hedef vermeyi anlatayım.

Actions penceresinden butonumuzu buluyoruz ve kod penceresine aşağıdaki kodu yazıyoruz.

on (release){
gotoAndPlay("Scene 2",1);
}


Görüldüğü üzre gotoandplay fonksiyonu parametre olarak ilk scene'mizi 2. olarak da gitmek istediğimiz frame'i alıyor.

Şimdi biraz ayrıntıya girelim ve bir movieclip'e eklediğimiz bir butonu ana scenemizde bir frame'imize gönderelim.

Öncelikle gitmek istediğimiz frame'in label'ını Properties penceresinden istediğimiz bir şekilde adlandıralım. (Ben kodda deneme olarak kullanıyorum)

Şimdi movieclip içindeki butonumuza gelelim ve yine actios'dan butonumuza ait kod penceresine aşağıdaki kodu yazalım. yourlabel kısmına ise verdiğimiz etiket adını girmeliyiz. Yani "deneme"

on (release) {
_root.gotoAndStop("yourlabel");
}


Yukaridaki kod ile bir movieclip içine buton koyup istediğiniz frame'e yönlendirebilirsiniz.

Herkese kolay gelsin.

Action Script Hakkında

Action Script Hakkında

ActionScript, Adobe® Flash® Player ve Adobe® AIR™ çalışma zamanı ortamları için programlama dilidir. Flash, Flex ve
AIR içerik ve uygulamalarında etkileşim, veri işleme ve daha fazlasına olanak sağlar.
ActionScript, Flash Player ve AIR uygulamasının bir parçası olan ActionScript Virtual Machine (AVM) tarafından
çalıştırılır. ActionScript kodu, Adobe® Flash® CS4 Professional veya Adobe® Flex™ Builder™ uygulamasında yerleşik
olanlar ya da Adobe® Flex™ SDK uygulamasında kullanılabilir olanlar gibi, genellikle bir derleyici tarafından bayt kodu
formatında (bilgisayarlar tarafından yazılan ve anlaşılan bir çeşit programlama dili) derlenir. Bayt kodu, Flash Player
ve AIR uygulamaları tarafından çalıştırılan SWF dosyalarında gömülüdür.
ActionScript 3.0, nesne tabanlı programlama konusunda temel bilgisi olan geliştiricilere bilindik gelecek güçlü bir
programlama modeli sunar. ActionScript 3.0'ın önceki ActionScript sürümlerinden daha gelişmiş olan bazı önemli
özellikleri arasında şunlar yer alır:
• AVM2 adı verilen ve yeni bir bayt kodu talimat kümesi kullanıp önemli ölçüde performans artışı sağlayan yeni bir
ActionScript Virtual Machine.
• Önceki derleyici sürümlerinden daha derin eniyileştirmeler gerçekleştiren daha modern bir derleyici kodu
• Düşük düzeyde nesne denetimi ve gerçek bir nesne odaklı model içeren, genişletilmiş ve geliştirilmiş bir uygulama
programlama arabirimi (API)
• XML için ECMAScript (E4X) belirtimini (ECMA-357 sürüm 2) esas alan XML API'si. E4X, dilin yerel veri türü
olarak ECMAScript'e XML ekleyen bir dil uzantısıdır.
• Belge Nesnesi Modeli (DOM) Düzey 3 Olaylar Belirtimi'ni esas alan bir olay modeli

18 Temmuz 2009 Cumartesi

Wordpress Kurulum

İlk olarak hostunuzun controlpanelinden sql database oluşturun. Bir adet yeni kullanıcı oluşturup bu kullanıcıyı tüm yetkileri vererek oluşturduğunuz database'e ekleyin.

Daha sonra aşağıdaki adresten wordpress'in son sürümünü (tercihe bağlı olarak türkçe) indirebilirsiniz.

http://www.wordpress-tr.com/indir/

Şimdi indirdiğimiz dosyanın içindeki dosyaları ftp kök dizininize atın. (örn: public_html)

Daha sonra domain adınıza girdiğinizde wordpress kurulum ekranı ile karşılaşacaksınız. İlk olarak config.php oluşturuluyor.

Daha sonra aşağıdaki resimde olduğu gibi bilgilerinizi eksiksiz olarak girin ve göndere basın. Eğer database ile bağlantınız kurulursa son aşamaya geçecek ve blogunuzun bilgilerini dolduracaksınız.

Herkese kolay gelsin. Ayrıntılı bilgi için blog menümdeki sık kullanılanlar bölümünden wordpress-tr sayfasını ziyaret edebilirsiniz.

17 Temmuz 2009 Cuma

Action Script ile Flash Preloader Yapalım

Flash preloader yapımı oldukça basit bir mantığa dayanmakta. Öncelikle Action Script için algoritmamızı kuralım.

- İlk olarak toplam byte'ı tutan bir değişkene ihtiyacımız var.
- Yüklenmiş byte'ı tutan bir değişkene ihtiyacımız var.
- Yüzde ( yüklenmiş / toplam ) değişkenine ihtiyacımız var.

Flash sitemizde ilk frame'imize preloader'ımızı yapacağız. İlk frame'de toplam byte'a ulaşıncaya kadar göstereceğimiz animasyon / yazı (movie clip) ve yüklenen %'yi göstereceğimiz dynamic bir text'e ihtiyacımız var.

Şimdilik ilk frame'imize sadece yükleniyor yazalım ve boş bir dynamic test açalım. dynamic text in instance name'ine yuzde_txt yazalım. Daha sonra ilk frame'in actions penceresine aşağıdaki kodları yapıştıralım.

onEnterFrame=function(){

var toplamBoyut:Number=_root.getBytesTotal();

var yuklenenBoyut:Number=_root.getBytesLoaded();

if(yuklenenBoyut==toplamBoyut){

delete onEnterFrame

play();

}else{

var yuzde:Number=Math.floor((yuklenenBoyut/toplamBoyut)*100);

yuzde_txt.text=yuzde

}

}

stop();


Şimdi kodları biraz inceleyelim.

onEnterFrame :Bir movie clip olay denetleyicisidir.Timeline çizgisinin her frame geçişinde çağrılır.

getBytesTotal():MovieClip sınıfının bir metodudur.Toplam dosya boyutunu byte olarak gösterir.

getBytesLoaded():MovieClip sınıfının bir metodudur.O ana kadar yüklenen dosya boyutunu byte olarak gösterir.

if / else : Koşul değimi. (Ayrıntılı bilgi için blogda c if /else kısmına bakabilirsiniz.)

Math.floor : Matematik kütüphanesi ile yüzenin ondalık kısmını yuvarlar. Kesirli sayılar gözükmez textimizde.

play() : İle parametre olarak gönderilen frame'e geçiş yapılır.

Tüm flash severlere kolay gelsin.

tarafımdan hazırlanmıştır.

C / Çok Boyutlu Diziler

ÇOK BOYUTLU DİZİLER

Bir sınıftaki 40 öğrencinin notlarını saklamak için 40 elemanlı tek boyutlu bir dizi gerekirken; bir sınıftaki 40 öğrencinin 3’er notlarını saklamak için 40 satırı ve 3 sütunu bulunan (40 X 3 ) iki boyutlu bir dizi gerekecektir. İlk öğrencinin ilk notu dizinin [0][0] indis numaralı notudur. Dizinin [23][2] indis numaralı elemanı ise 24. elemana ait 3. notu saklamaktadır. Çünkü dizilerin indis numarası 0(sıfır)’dan başlar.

Eğer sınıftaki 40 öğrencinin, 6’şar dersten aldıkları 3’er notları saklamak isteseydik üç boyutlu bir diziye ihtiyaç duyacaktık. (40 X 10 X 3 )

Elemanlarına birden fazla indis numarası ile ulaşılan dizilere çok boyutlu diziler denir. C dilinde dizi boyutları hafızanın desteklediği ölçüde olabilir. Çok boyutlu diziler arasında en çok kullanılanı 2 boyutlu dizilerdir. 2 boyutlu dizileri bir tablo gibi düşünebiliriz. Bu tablodaki herbir elemana ulaşmak için önce satır sonrada sütun indis numarasını söylemek gerekir.

İKİ BOYUTLU DİZİLERİN TANIMLANMASI

İki boyutlu dizi tanımlanırken dizinin içerisinde saklanacak elemanların tipi, dizinin adı ve satır –sütun boyutları söylenir.

int not [40] [3];

İlk söylenen satır sayıs, ikinci söylenen sütun sayısıdır.

ÇİFT BOYUTLU DİZİLERE İLK DEĞER ATANMASI

Çift boyutlu dizinin herbir elemanına satır ve sütun indis numarası söylenerek ulaşılıp değer atanabilir.

not[23][2] = 78;

Bununla birlikte tıpkı tek boyutlu dizilerde olduğu gibi tanımlama esnasında da ilk değer ataması yapılabilir. Bu defa içiçe iki küme parantesi kullanmak gerekir. Her bir küme parantezi içerisindeki değerler herbir satırdaki değeri ifade eder. Örneği inceleyelim.

int a[3] [4] = { {1,2,3,4} , {5,6,7,8} , {9,10,11,12} }

Böyle bir atama sonunda değerler diziye aşağıdaki şekilde yerleşecektir:


0. Sütun 1. Sütun 2. Sütun 3. Sütun
0. Satır 1 2 3 4
1. Satır 5 6 7 8
2. Satır 9 10 11 12
Bu durumda; a[2][1] indis numaralı elemanın değeri 10’dur. Yukarıdaki gibi bir değer atama işleminin ilk bakışta daha kolay anlaşılabilmesi için şu şekilde bir yazım yöntemi tercih edilebilir:

A[3] [4] = { {1, 2, 3, 4},
{5, 6, 7, 8},
{9,10,11,12} } ;

ÖRNEK:

4 X 3 boyutlarında bir diziye klavyeden eleman girdiriniz. Girilen elemanlar içerisinde en büyüğünü buldurunuz. Diziyi ekrana tablo şeklinde yazdırınız.

#include
#include
void main ( )
{
int a[3][4], i, j, eb;

for ( i=0;i <3; i++) for (j=0; j<4; j++) { printf ( “%d. Sütun %d. Satır elemanını giriniz:”, i+1, j+1); scanf ( “%d”, &a[i][j] ); } eb=a[0][0]; for ( i=0; i<3; i++) for(j=0; j<4; j++) if (a[i][j] > eb)
eb = a[i][j];
printf ( “\n Dizinin en büyük elemanı %d ‘dir...”, eb);
printf(“\nDizi ekrana tablo halinde yazdırılıyor...”);
for (i=0; i<3; i++) { printf (“\n”); /* Her satır elemanını yeni bir satırın başından yazmak için */ for ( j=0; j<4; j++) printf (“%5d”, a[3][4]); } getch(); } NOT: İki boyutlu dizileri hafızanızda daha iyi canlandırabilmeniz için tablo örneğini verdik. Ama iki boyutlu diziler hafızada tablo şeklinde yerleşmezler. Arka arkaya önce ilk satır elemanları, hemen arkalarından ikinci satır elemanları....şeklinde tıpkı tek boyutlu dziler gibi saklanırlar. Biz başlangıç adreslerini (dizinin adında başlangıç adresi saklıdır) ve her satırda kaç eleman olduğunu bildiğimizden hangi elemanın hangi satıra ait olduklarını bulabiliriz. 3X4 boyutundaki bir dizinin ilk 4 elemanı ilk satıra, ikinci 4 elemanı ikinci satıra ait elemanlardır. ÇOK BOYUTLU DİZİLERİN FONKSİYONA PARAMETRE OLARAK GÖNDERİLMESİ Tıpkı tek boyutlu dizilerde olduğu gibi iki boyutlu dizi de fonksiyona gönderilirken sadece adı yazılır. Yani gönderilen dizinin başlangıç adresidir. Ancak fonksiyonda gelen diziyi karşılamak için dizinin boyutlarına uygun dizi tanımlanmalıdır. Gönderilen diziyi karşılayacak dizinin ilk boyut değeri söylenmez ama ikinci boyut değeri mutlaka söylenmelidir. ÖRNEK: Elemanları klavyeden girilecek 3X4 boyutlarında ki bir diziyi fonksiyonda ekrana tablo şeklinde yazdırınız. #include
#include
void dizi_yaz (int [][4]);
void main ( )
{
int a[3][4], i, j;

for ( i=0;i <3; i++)
for (j=0; j<4; j++)
{
printf ( “%d. Sütun %d. Satır elemanını giriniz:”, i+1, j+1);
scanf ( “%d”, &a[i][j] );
}
eb=a[0][0];
dizi_yaz (a);
getch();
}

void dizi_yaz (int b[][4])
{
int i,j;
printf(“\nDizi ekrana tablo halinde yazdırılıyor...”);
for (i=0; i<3; i++)
{
printf (“\n”); /* Her satır elemanını yeni bir satırın başından yazmak için */
for ( j=0; j<4; j++)
printf (“%5d”, a[3][4]);
}
}

ÇALIŞMA SORULARI:
50 elemanlı integer bir diziye 1-10 arasında rasgele değerler atayınız. Her sayıdan kaç tane olduğunu buldurunuz.

Örnek:
1’lerin sayısı: 4
2’lerin sayısı: 12
3’lerin sayısı: 8
.
.
.

50 elemanlı integer bir diziye 1-10 arasında rasgele değerler atayınız. Dizi elemanlarının herbirinin tekrar sayısını bir histogramla gösteriniz.

Örnek:
Eleman Sayısı Histogram
1 3 ***
2 12 ************
3 8 ********
.
.
.
20 elemanlı integer bir diziye 1-100 arasında rasgele değerler aktarınız. Diziyi ters çeviren fonksiyonu tasarlayınız.Ters çvirme işlemini elemanların yerlerini değiştirerek yapınız. Fonksiyon parametre olarak dizinin bşlangıç adresini almalıdır.




Dizi[0] Dizi[1] ..... Dizi[18] Dizi[19]
6 1 ........ 45 7




Elemanları klavyeden girilen 4 X 3 boyutlarında bir tablonun elemanlarını 3 X 4 boyutlarında bir tabloya aktaran fonksiyonu tasarlayınız. İlk tablonun satır elemanları, ikinci tablonun sütun elemanları olmalıdır. Fonksiyon parametre olarak tablonun başlangıç adresini almalıdır.

İLK TABLO

5 3 2
8 1 4
2 6 7
3 7 1

İKİNCİ TABLO

5 8 2 3
3 1 6 7
2 4 7 1

C / Dizileri Fonksiyona Parametre Olarak Gönderme

DİZİLERİ FONKSİYONA PARAMETRE OLARAK GÖNDERMEK (Passing Array to Function)

Parametre olarak bir dizi alacak olan fonksiyon tanımlanırken parametrei dizi olarak söylenmelidir.

void dizi_yaz (int [], int);

tanımlaması, birisi integer dizi, diğeri integer olan iki parametre alıp geriye değer döndürmeyen bir fonksiyonu ifade eder. Yani fonksiyona bir dizi gönderileceğinden onu karşılayan değerinde bir diziolması gerekir. Ancak fonksiyonda diziyi karşılayacak olan diziye boyut ya da indis belirtilmez.

Herhangibir dizi fonksiyona parametre olarak gönderilirken sadece dizinin adı söylenir, [] işaretleri kullanılmaz ve indis numarası belirtilmez.

int a[10]; şeklinde tanımlanmış bir diziyi fonksiyona göndereceksek

dizi_yaz ( a , 10)

dememiz gerekir. Dikkat edilirse sadece dizinin adını (a) yazdık. Ne köşeli parantez kullandık ne de indis numarası söyledik. Eğer indis numarası kullanarak gönderseydik hatalı bir işlem yapmış olurduk.

dizi_yaz (a[3], 10) gibi bir ifade fonksiyona diziyi değil, dizinin 3 indis numaralı tekbir elemanını gönderir. Dizinin tamamını fonksiyona gönderebilmek için sadece adını yazmak gerekir.

Bu ifade aslında dizinin başlangıç adresini göndermektir. (Dizinin adında hafızadaki başlangıç adresi saklı değil miydi?) Böylece dizi elemanları hafızada arka arkaya yerleştiğinden istenilen herhangi bir elemana ulaşılabilir. Fonksiyonda işlem gören dizinin saklanmış olduğu hafıza adresleri olduğundan ve hafızada aynı adresten sadece bir tane bulunduğundan fonksiyonda yapılan işlemler (mesela dizi elemanlarının değiştirilmesi) ana programdaki diziyi de etkilemiş olur. Yani ana programdaki dizi ile fonksiyondaki dizinin adları farklı olsa da aynı hafıza hücresinde bulunan elemanlar üzerinde çalışmaktadırlar. Böylece fonksiyonun geriye parametre döndürmesine gerek kalmadan dizi elemanlarının hepsi fonksiyonda değiştirilebilir.

ÖRNEK: Değerleri ana programda kullanıcıdan istenen 10 elemanlı integer bir diziyi fonksiyona gönderip, fonksiyonda kabarcık sıralaması yöntemini kullanarak sıralatalım. Ve sıralı halini ana programda ekrana yazdıralım.

#include
#include
void sirala ( int [] );
void main()
{
int a[10], i;

for (i=0; i<10; i++) { printf(“Dizinin %d. Elemanını giriniz:”); scanf(“%d”, &a[i]); } sirala ( a ); printf (“\nDizinin sıralı hali:”); for ( i=0; i<10; i++) printf(“%d\n”, dizi[i]); getch(); } void sirala (int b[] ) /* Parametre olarak dizi geldiği için onu karşılayan da dizi olmak zorunda*/ { int i, j, yedek; for (i=0; i<10; i++) for ( j = 0; j< 10-1; j++) if (b[j]>b[j+1]) /* Her elemankendinden bir sonraki ile karşılaştırılıyor */
{
yedek = b[j]; /* yer değiştirme yapılıyor */
b[j] = b[j+1];
b[j+1] = yedek;
}
}

ÇOK BOYUTLU DİZİLER

Bir sınıftaki 40 öğrencinin notlarını saklamak için 40 elemanlı tek boyutlu bir dizi gerekirken; bir sınıftaki 40 öğrencinin 3’er notlarını saklamak için 40 satırı ve 3 sütunu bulunan (40 X 3 ) iki boyutlu bir dizi gerekecektir. İlk öğrencinin ilk notu dizinin [0][0] indis numaralı notudur. Dizinin [23][2] indis numaralı elemanı ise 24. elemana ait 3. notu saklamaktadır. Çünkü dizilerin indis numarası 0(sıfır)’dan başlar.

Eğer sınıftaki 40 öğrencinin, 6’şar dersten aldıkları 3’er notları saklamak isteseydik üç boyutlu bir diziye ihtiyaç duyacaktık. (40 X 10 X 3 )

Elemanlarına birden fazla indis numarası ile ulaşılan dizilere çok boyutlu diziler denir. C dilinde dizi boyutları hafızanın desteklediği ölçüde olabilir. Çok boyutlu diziler arasında en çok kullanılanı 2 boyutlu dizilerdir. 2 boyutlu dizileri bir tablo gibi düşünebiliriz. Bu tablodaki herbir elemana ulaşmak için önce satır sonrada sütun indis numarasını söylemek gerekir.

C Dizilerde Arama & Sıralama

DİZİ İÇERİSİNDE ELEMAN ARAMA: Herhangibir elemanın dizi içerisinde olup olmadığına bakılabilir. Bunun için kullanılacak en basit yöntem, dizi elemanlarının aranılan elemana eşit olup olmadığına sıra ile bakmaktır. Sonuna kadar bakılıp hiçbirine eşit bulunamadı ise o eleman dizide yok demektir.

DİZİ ELEMANLARINI SIRALAMA: Dizideki elemanları büyükten küçüğe ya da küçükten büyüğe sıralamak için farklı mantıklar kullanılabilir. Sıralama çoğunlukla iki yöntem kullanılır.

Seçme Sıralaması (Selection Sort) : Dizinin ilk elemanı kendinden sonraki elemanların hepsi ile tek tek karşılaştırılır. Her karşılaştırma işleminden sonra eğer elemanlar ters sırada ise (küçükten büyüğe sıralamada üstteki eleman büyükse) bu iki eleman yer değiştirilir. İlk eleman sonuna kadar her elemanla karşılaştırılıp gerekli olanlar yer değiştirdikten sonra dizinin ilk elemanı (küçükten büyüğe sıralanıyorsa dizinin en küçük elemanı, büyükten küçüğe sıralanıyorsa dizinin en büyük elemanı) bulunup yerine yerleştirilmiş olur. Bundan sonra aynı işlem dizinin diğer elemanlarına da tek tek uygulanır. Bunları örnek bir dizi üzerinde görürsek daha iyi anlayacağız.

İlk eleman için:

9 3 6 1 12

9>3 mü? Evetse ters sıradalar. 9 ve 3’ü yer değiştir. Hayırsa hiç birşey yapma. devam Arık 3 ilk eleman oldu. Karşılaştırma sıradaki elemandan devam ediyor.


3 9 6 1 12

3>6 mı? Hayır. Karşılaştırma sıradaki elemandan devam ediyor.


3 9 6 1 12

3>1 mi? Evet. Bu iki elemanı yer değiştir. Artık ilk eleman 1 oldu. Karşılaştırma sıradaki elemandan devam ediyor.


1 9 6 3 12

1>12 mi? Hayır.

İlk eleman sonuna kadar her elemanla karşılaştırıldı. Ters sırada olanlar yer değiştirildi. Böylece ilk geçişte en küçük eleman bulundu ve ilk sıraya yerleşti. Aynı karşılaştırılma işlemi 2. eleman için tekrarlanacak: (İlk eleman zaten doğru sırasına yerleştiğine göre karşılaştırmaya en baştan başlamaya gerek yok. Kendinden bir sonraki elemandan başlanabilir.)



1 9 6 3 12

9>6 mı? Evet. Bu iki elemanı yer değiştir. Artık ikinci eleman 6 oldu. Karşılaştırma sıradaki elemandan devam ediyor.


1 6 9 3 12

6>3 mü? Evet. Bu iki elemanı yer değiştir. Artık ikinci eleman 3 oldu. Karşılaştırma sıradaki elemandan devam ediyor.


1 3 9 6 12


3>12 mi? Hayır.

İkinci eleman da sonuna kadar her elemanla karşılaştırıldığında ve gerekli değiştirme işlemleri yapıldığında ikinci sırada yeralması gereken eleman da yerine yerleşmiş oluyor. Ancak sonraki elemanlar hala karışık. Aynı işlemi onlara da uygulayalım. Şimdi sıra 3. elemanda


1 3 9 6 12

9>6 mı? Evet. Bu iki elemanı yer değiştir. Artık üçüncü eleman 6 oldu. Karşılaştırma sıradaki elemandan devam ediyor.


1 3 6 9 12

6>12 mi? Hayır.

Karşılaştırma 4. eleman için devam ediyor:


1 3 6 9 12

9>12 mi? Hayır.

Bu sıralama algoritmasını C koduna dökmek için elbetteki içiiçe iki döngü kullanılmalıdır. Ancak iki elemanın yerini değiştirirken 3. bir yedek değişken kullanmaya dikkat edilmelidir. Aksi taktirde iki elemanın yerini değiştirmek için,
a = b;
b = a; gibi iki komut kullanmak son derece yanlış bir sonuç doğurur. Bu iki komut sonunda her iki sayıda ikinci sayı ile (b değişkeni) aynı olur.

Halbuki yer değiştirme işlemi için kullanılacak yedek bir değişkenle aşağıdaki gibi yapılır.

yedek = a;
a = b;
b = yedek;

Şimdi bu mantığı kullanarak örnek bir dizi sıralaması yapalım:

/* Seçme Sıralaması yöntemi dizi sıralama */
#include
#include
#define BOYUT 5;
void main()
{
int a[5] = {9,3,6,1,12};
int i, j,yedek;
for (i=0 ; ia[j] )
{
yedek= a[i];
a[i] = a[j];
a[j] = yedek;
}
printf (“\n Dizi sıralandı:”);
for ( i=0; i3 mü? Evetse ters sıradalar. 9 ve 3’ü yer değiştir. Karşılaştırma sıradaki elemandan devam ediyor.


3 9 6 1 12

9>6 mı? Evet. Bu iki elemanı yer değiştir. Karşılaştırma sıradaki elemandan devam ediyor.


3 6 9 1 12

9>1 mi? Evet. Bu iki elemanı yer değiştir. Karşılaştırma sıradaki elemandan devam ediyor.


3 6 1 9 12

9>12 mi? Hayır.

İlk tur karşılaştırma bitti. Ters sırada olanlar yer değiştirildi. Böylece ilk geçişte en büyük eleman bulundu ve ilk sıraya yerleşti. Aynı karşılaştırılma işlemi ilk elemandan başlanıp tekrarlanacak. Dizideki eleman sayısınca aynı işlem yapıldığında dizi sıralanmış olacak. Bu sıralama algoritmasının kodunu sanırım kendiniz düzenleyebilirsiniz. Lütfen deneyiniz!...

C Dizi Elemanlarına Değer Atanması

DİZİ ELEMANLARINA DEĞER ATANMASI

Dizilere değer atama işlemi tanımlanması sırasında ilk değer atayarak da, sonradan programın herhangibir yerinde de yapılabilir. Eğer tanımlama sırasında değer atanacaksa aşağıdaki örnekte olduğu gibi yapılmalıdır. Bu durumda dizi elemanları küme parantezi (brace) içerisinde aktarılır ve herbirisi diğerinden virgülle ayrılır. Elemanlar ilk hücreden itibaren sırası ile yerleştirilirler.

int a[10] = { -45, 6, 0, 72, 1543, -89, 0, 62, -3, 1};

Bu ilk değer ataması işleminde bazı hususlara dikkat edilmelidir:
Küme parantezi içerisinde dizinin söylenen boyutundan daha fazla eleman olmamalıdır. Böyle bir durumda yazım hatası (syntax error) ile karşılaşılır.
Küme parantezi içerisinde dizinin söylenen boyutundan daha az eleman varsa belirtilen elemanlar sırasıyla diziye aktarılır, boş kalan yerlerdeki elemanlar 0 kabul edilir.
İlk değer ataması sırasında dizinin boyutu verilmemişse ise, küme parantezi içerisinde eleman sayısı dizi boyutu olarak kabul edilir.
ÖRNEK: int a[] = {-45, 6, 0, 72, 1543, -89}; şeklinde tanımlanmış bir dizinin boyutu söylenmemiş olsa da (diziye 6 eleman aktarıldığı için) 6 olarak algılanır.

Fakat dizi sadece tanımlanacak ve eleman aktarılmayacaksa boyutu mutlaka belirtilmelidir. Aksi hatalı bir durumdur. Yani int a[]; şeklinde bir tanımlama yapılamaz.
Dizi tanımlanmış, ancak hiçbir eleman aktarılmamışsa dizi içerisinde rasgele değerler bulunur. (Aslında abu değerler dizi için ayrılmış olan hafıza bölümünde daha önceden varolan değerlerdir.)

Bütün bunların dışında dizinin herbir elemanına indis numarasını kullanarak tek tek de ulaşılıp değer atanabilir.

a[5] = 65; /* Dizinin 5 indis numaralı elemanına –aslında 6. eleman- 65 değerini aktarır. */

Örnek: Klavyeden girilen 10 adet sayıyı giriş sıralarının tersinden ekrana yazdırınız.

Böyle bir örneği dizi kullanmadan yapmak için 10 tane ayrı değişken tanımlamak ve değerleri 10 ayrı komutla girdirip, yeniden 10 ayrı komutla yazdırmak gerekir. Çünkü her değer giriş işleminden sonra yeniden lazım olacağından mutlaka saklanmaları gerekecek. Ancak 10 elemanlı bir dizi ile bu işlemleri çok daha kısa sürede yapabiliriz.

#include
#include
void main()
{
int a[10]; i;
for ( i=0; i<10; i++) { printf (“%d. Elemanı giriniz:”, i+1); scanf (“%d”, &a[i]); } printf (“\n Elemanlar tersten yazılıyor:”) for ( i = 9; i >= 0; i--)
{
printf (“%d\t”, a[i]);
}

C Tek Boyutlu Diziler

TEK BOYUTLU DİZİLER

Tanımlanması: Tek boyutlu diziler tanımlanırken dizinin tipi, dizinin adı ve kaç eleman için yer ayrılacağı (dizinin eleman sayısı / boyutu) söylenmelidir. Dizinin boyutu değişken olamaz, mutlaka sabit olmalıdır. Tek boyutlu bir dizi aşağıdaki gibi tanımlanır:

Dizinin_Tipi Dizinin_Adi [Dizinin_Boyutu];

int a [10]; /* İçerisinde 10 tane integer sayı saklanabilecek dizi*/
float b[5]; /* İçerisinde 5 tane ondalık sayı saklanabilecek dizi */
char c[20]; /*İçerisinde 20 tane karakter saklanabilecek dizi*/

Diziler tanımlandığında söylenen sayıda elemanı saklayabilmek için hafızada gerekli miktarda yer ayrılır. Sözgelimi integer bir sayı hafızada 2 byte yer kapladığına göre, 10 elemanlı integer bir dizi için 2*10 byte yer ayrılmalıdır. Yani 10 elemanlı integer bir dizihafızada 20 bytelık adres alanı işgal eder. Ayrılan hafıza alanlarının başlangıç adresi de dizinin adında saklanır.

C Diziler Arrays Tanım

Tanım: Aynı tipteki birden fazla değişkeni tek bir isim altında tutmayı sağlayan yapılardır. (struct) Dizi, hafızada bir bölgenin birden fazla değişken için ayrılmasıdır. Dizi içerisinde saklanacak her verinin tipi birbiri ile aynı olmalıdır. Örneğin, tek bir dizi içerisinde hem tamsayı hem de ondalık sayı saklanamaz.

Dizi içerisindeki herbir elemanın adı aynıdır, bu elemanlara dizideki sıra numarası yardımı ile ulaşılır. Bu numaraya dizinin indis numarası denir ve [ ] işaretleri içerisinde gösterilir. Dizinin ilk elemanının indis numarası daima 0 (sıfır) dır.

Aşağıda 10 elemanlı bir dizi şeklen ifade edilmiştir.


Sayi
Sayi[0] - 45
Sayi[1] 6
Sayi[2] 0
Sayi[3] 72
Sayi[4] 1543
Sayi[5] -89
Sayi[6] 0
Sayi[7] 62
Sayi[8] -3
Sayi[9] 1


Görüldüğü gibi dizinin ismi sayi ‘dır ve dizinin ilk elemanı olan –45 sayısının dizideki sıra numarası (indisi) 0 dır. Dizinin 10. elemanı 1 dir, ancak bu elemanın indis numarası 9’ dur. Çünkü dizi numaralandırılmaya 0’dan başlanmaktadır.

13 Temmuz 2009 Pazartesi

Css Tutorial

Bir önceki yazımda bahsettiğim style css kodlarını içeren bir tutorial.

#header
{
border: 0;
margin: 0px auto;
width:800px;
height: 106px;
}

body
{
width: 1024px;
height: 768px;
background-color: #952828
}

#con
{
width: 800px;
height: 600px;
background-image: url(images/arkafon.png);
background-position: top center;
text-align: left;

}

#bodyarka
{
width: 800px;
height: 400px;
background-image: url(images/arkafon2.png);

}

#tablo
{
width: 400px;
height: 400px;
float: left;
margin: 20px;
margin-top: 30px;
}

#resim
{
MARGIN: -450px 120px 10px 10px;
float: right;
display:inline;
}

Ayyıldız Tim Çin'e saldırdı

Dünyanın ilk siber savunma ordusu olarak bilenen ve bu zamana kadar çökerttiği sitelerle adından sıkça söz ettiren Ayyıldız Tim Türk internet korsanları, Çin'de Uygur Türkleri'ne uygulanan vahşete tepki göstermek amacıyla Çin'den yayın yapan binlerce siteyi çökertti.

Çin'in bazı kamu kurum ve kuruluşlarının internet sitelerini de çökerten Ayyıldız Tim üyeleri, çökerttikleri internet sitesine "Uygur Türkleri yalnız değil" ve "Bu vahşete bir son verin" şeklinde sloganlar yazdılar.

Ayyıldız Tim üyeleri, Uygur Türkleri'nin vahşice katledilmesine göz yummayacaklarına ve Çin'in askeri ve bankaların internet sitelerini çökerterek milyon dolarlarca zarar açacaklarını söylediler. Şu ana kadar 2 bini aşkın sitenin çökertildiğini belirten Ayyıldız Tim üyeleri, Çin'den yayın yaptığı tespit edilen bütün sitelerin çökertileceğini duyurdular.

Ayyıldız Tim kimdir?

http://www.youtube.com/watch?v=YphahJTqwPk

12 Temmuz 2009 Pazar

Css Özellikleri

Bir web tasarımım için yazdığım css dosyasında kullandığım özelliklerden bahsedeceğim bu yazımda.

color: #FFFFFF; (renk değişikliği)
background-color: red; (arkaplan rengini belirler)
background-image: url(image'in yolu); (arka plan için bir resim eklersiniz)
background-position: center center; (background'ı yatay ve düşey olarak hizalarsınız)

margin-top:40px;
margin-bottom:30px;
margin-left: 30px;
margin-right: 20px; (tablomuzun sol,say,yukarıdan ve aşağıdan hizalamamızı sağlar)

float: right;
float: left; (sağ yada sol hizalam)

text-align: center;
text-align: left;
text-align: right;
(yazılarınızı hizalamanızı sağlar)

Şimdilik bu kadar. sitemin ihtiyaçları arttıkça ekleyeceğim css kodlarını yine sizlerle paylaşacağım.

Herkese kolay gelsin.

11 Temmuz 2009 Cumartesi

WP Benzer Başlıklar

Wordpress ile hazırladığınız sitenizde herhangi bir konuya ait benzer başlıkları görüntülemenize olanak sağlayan bu plugini aşağıdaki linkten indirebilirsiniz.

http://rapidshare.com/files/254753005/if_you_liked_that-tr.zip.html

Açıklama ve kurulum:

Sıkıştırılmış dosya içerisindeki ‘if_you_liked_that.php’ dosyasını /wp-content/plugins klasörüne upload edin.
Yönetim Paneli/Eklentiler bölümünden ‘If You Liked That’ eklentisini etkinleştirin.
Ayarlar/If you liked that menüsünü kullanarak eklentinin ayarlarını yapın. Eğer ayarları yapmazsanız, eklentinin çalışmasını göremezsiniz.

CSS nedir, Nasıl Kullanılır?

HTML bize metin biçimlendirme alanında çok geniş olanaklar sunar. CSS, uzun yazılışıyla Cascading Style Sheets, veya Türkçesiyle Stil şablonları ise bunu bir adım daha öteye götürür, bize sayfalarımız için global şablonlar hazırlama olanağı verdiği gibi, tek bir harfin stilini; yani renk, font, büyüklük gibi özelliklerini değiştirmek için de kullanılabilir. Bu tekniğin en önemli özelliği kullanımındaki bu esnekliğidir.

Bir web sayfası içerisinde zaten estetik kuralları gereği yüzlerce renk ve font kullanmayız. Genelde birbiriyle uyumlu birkaç renk ve birkaç font kullanırız ki, bunları her sayfada ayrı ayrı tekrar belirtmek yerine CSS yardımıyla bir sefer tanımlayıp bütün web sayfamızda kullanabiliriz.Bu şekilde güncelleme yaparken de onlarca sayfayı değiştirmekten kurtuluruz.

CSS kodları HTML kodlarının içine yazılırlar. Türüne göre body veya head bölümlerinde yer alabilirler. Bunların dışında harici CSS dosyaları oluşturulup bunlar gerektiğinde HTML belgesi içerisinde çağırılabilirler.

Hemen hemen her konuda olduğu gibi CSS konusunda da Microsoft Internet Explorer ve Netscape farklı yorumlar ortaya koyarlar. Bu noktada her iki browserın da aynı/benzer yorumlayacağı kodlar yazmak en uygunudur.

alıntıdır.

10 Temmuz 2009 Cuma

WP Devam Linki Oluştur

Wordpress ile ilk ilgilenmeye başladığımda yazdığım bir makale için "devam" linki oluşturup kullanıcıların "devam" linkine tıkladığında makalenin kalanını göstermesi için bir eklenti aramaya koyulmuştum. Genelde devam linkleri ayrı bir sayfada gösterilir bunun için eklentiler vardır fakat ben çok basit ve kullanışlı bir eklenti paylaşacağım sizle.

Eklentiyi download için:

http://rapidshare.com/files/254194262/enhanced-ss.php.html

Linkten indireceğiniz php dosyasını hostunuzdaki eklentiler klasörüne upload edin ve eklentiyi aktifleştirin.

Şimdi gelelim kullanışına;

Makalemizi yazıyoruz ve gizlenmesini istediğimiz yeri [spoiler][/spoiler] tagları içine yazıyoruz. Böylece hoş bir devam linki oluşturuluyor.

Eklenti ingilizce fakat php dosyamızı herhangi bir editör ile açıp "show","hide" kelimelerini editleyerek istediğiniz şekilde yazmasını sağlayabilirsiniz.

Kolay gelsin.

9 Temmuz 2009 Perşembe

Widget nedir Ne işe yarar?

Widget kısa olarak bir platform üzerine monte edilerek o platforma ekstra özellikler katan ufak araçlar olarak tanımlanabilir.

Widget terimi ile özellikle web platformlarında karşılaşırız. Fakat widget'i masaüstüne veya bir programa da ekleyerek bu platformlara ekstra özellikler katabiliriz.

Örneğin blogumda yayınladığım wordpress için random posts eklentisi widget desteklidir. Wordpressin admin panelinden bileşenler kısmına geçiş yaptığımızda soldaki bileşenler menüsünde Random Posts eklentisini görürüz ve istediğimiz sidebar'a kolaylıkla ekleyebiliriz. Wordpress'e kurduğumuz eklentinin widget destekli olmasının bize sağladığı avantaj eklentiyi herhangi bir sayfaya eklememiz gerektiğinde kodlarla uğraşmak yerine admin paneli/görünüm/bileşenler kısmındaki widget desteği ile hızlı bir şekilde eklememizdir.

WP Random Posts

Wordpress ile ilgilenen arkadaşların işine yarayacağını düşündüğüm basit bir eklenti. Bu eklenti ile sitenizde rasgele makaleler gösterebilirsiniz. Eklentiyi sizler için rapid'e upload ettim.

http://rapidshare.com/files/253991117/random-posts-widget.zip.html

Eklentide widget desteği bulunmaktadır.

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

http://lesterchan.net/

Kurulum:

1) Eklentiyi wp-content/plugins/ 'e upload edin.
2) Admin panelinden eklentiyi aktifleştirin.
3) Bileşenler kısmından eklentiyi widget olarak istediğiniz bölüme ekleyebilirsiniz.
4) Eklenti ayarlaını ayarlar kısmından yapabilirsiniz.

Google'dan Windows'a rakip işletim sistemi geliyor




Yeni işletim sistemi; sade, hızlı ve güvenli olacak. Ara yüz sıkıcı olmayacak. İnternete birkaç saniyede girilebilecek.

İnternet devi Google, yakında piyasaya işletim sistemi sürüyor. 2010'un ikinci yarısında "çok hafif" bilgisayarlarda kullanılmaya başlayacak Google Chrome OS adlı işletim sistemi, dünyadaki bilgisayarların yüzde 90'ında kullanılan Microsoft'un Windows'una rakip olacak.
Kaynak: Wardom http://www.wardom.org/showthread.php?t=292157

Yeni sistem, internette gezinti amacıyla geliştirilen "netbook" bilgisayarlara öncelikle yüklenecek.

Yeni işletim sistemi, şirketin Microsoft'un internet tarayıcısı İ.Explorer'la rekabet etmek için eylülde çıkardığı Chrome yazılımı esas alınarak geliştirildi.
Şirketten yapılan açıklamaya göre, "yeni işletim sistemi; sade, hızlı ve güvenli olacak. Ara yüz sıkıcı olmayacak. İnternete birkaç saniyede girilebilecek.

alıntıdır.

Wordpress Photo Album Eklentisi

Wordpress için kullanışlı bir photo albüm. Tasarımını yaptığım bir sitede kullandım ve gerçekten çok kullanışlı bir plugin.

Bu plugin sayesinde kolaylıkla resimleri sunucunuza upload edip kategoriler oluşturabilirsiniz. Albümlere fotolar ekleyebilir, yorum yapabilirsiniz.

Kullanımı gayet basit bu plugini indirmek için aşağıdaki linki kullanabilirsiniz:

http://me.mywebsight.ws/web/wppa/#download

Kurulum:

1- Eklentiyi wp-content/plugins/ çıkartıyoruz.
2- Upload klasörümüzün yazma izinlerini chmod 755 yapıyoruz
3- Plugin'i aktive ediyoruz.
4- Admin panelinde çıkan photos kısmından gereken işlemleri yapıyoruz. (albüm oluştur resim yükle)

Herkese kolay gelsin.

PSD nedir?

Psd photoshop çalışma dosyası anlamına gelir. Elinizde psd uzantılı bir dosyada herhangi bir değişik yapabilirsiniz. Psd'deki çalışmalar genelde katman katman ayrılır.

Örneğin bir logo çalışmasında logonun adı ve sembolünü ayırabilir bir logoda hoşunuza giden bir kısmı alıp kendi tasarımınız için kullanabilirsiniz. Yada elinizdeki katmanı çoğaltabilirsiniz, efektlendirebilirsiniz.

5 Temmuz 2009 Pazar

Xml News Slider

Tasarladığım bir web sitesi için kullandığım 3 adet farklı xml news slider'ı siz okuyucularımla paylaşmak istedim. 3'ü de son derece kullanlışlı haber slideları. .fla dosyaları içinde.

Fla dosyalarında editleme ile ilgili sorununuz olursa buradan sorabilirsiniz.

(kendi uploadumdur zararlı içerik içermez :))

http://rapidshare.com/files/252421355/news_slider.rar.html

Stylesheet sorunu çözümü

Wordpress kullanıcılarının sıkça karşılaştığı (özellikle sitemap kurulumunda) bir sorun olan stylesheet sorunu nasıl çözülür?

Hata :Stylesheet yüklenmesinde hata: XSLT-Stylesheet için belirtilen bir XML-MIME-Türü yok

Bu sorunun kaynağı sitemap kurulduğunda taraycı ile (özellikle firefox) sitemap.xml arasındaki uyumsuzluktur.

Çözüm için hostumuza bağlanıyoruz ve .htaccess dosyasını bilgisayarımıza indiriyoruz. Herhangi bir editör ile açık (ör: notepad) en alt satıra aşağıdaki kodu ekleyip tekrar sunucumuza geri yüklüyoruz.

AddType application/xml .xsl

Sorun çözülmüştür.

SEO Terimleri

1. Seo makalemde Seo nedir? sorusuna cevap vermiştik. Seo nasıl yapılır'a geçmeden önce ileride kullanacağım terimler hakkında ufak bir sözlüğü sizle paylaşmak istiyorum.

SEO SÖZLÜK:

------------------------------------------------

A

Adsense - Google'ın websitesi sahiplerine hitap eden içerik tabanlı reklam programıdır. Sitenizde içeriğinizle alakalı Google reklamlarını yayınlayarak para kazanmanın kolay bir yoludur.

Adwords - Google'ın içeriksel reklamcılığa dayanan Adsense programının reklamverenlere hitap eden şeklidir. PPC (tıklama başına ödeme) reklamcılığın ilk örneklerindendir.

Algorithm (Algoritm) - İnternetteki sayfaların, arama motoru sonuçları arasında nasıl sıralanacağını belirleyen formül.

Anchor Text - Link'i tanımlayan yazıdır.

ALT text - Fareyi, bir imaj ya da resmin üzerine getirdiğinizde görünen metindir.

C

Click - Reklamverenin sitesine ulaşmak için başka sayfalardaki reklamlarına ya da linklerine tıklanmasıdır.

Cost-per-Click (CPC) - "Tıklama başına ücretlendirme" olarak Türkçe'ye çevrilen ve bir site üzerinde bulunan ve reklamverenin kendi sitesine bağlantı sağlayan link’e her tıklandığındaki ücretlendirmedir.

Conversion (Dönüşüm) - Bir siteye ya da sayfaya gelen trafiğin reklamverenin beklentileri yönünde satış, abonelik, üyelik gibi sonuçlara dönüşmesidir.

Cross Linking (Çapraz Linkleme) - Çoğunlukla aynı kişiye/firmaya ait farklı sitelerin birbirine bağlantılanmasına denir. Sitelerin link sayısını arttırmak amacıyla tercih edilen bu uygulamanın da aşırı kullanımı arama motorları tarafından cezalandırılmakla sonuçlanabilir.

D

Directory - Site sahiplerinin kaydettirdiği sitelerin hiyerarşik sıralamasından oluşan dizinlerdir. En iyi bilinen örneği Yahoo!.

Doorway Page (Köprü/Geçiş Sayfası) - Gateway Pages olarak da geçen ve çoğunlukla arama motoru sonuçları arasında yükseklerde sıralanabilecek şekilde üzerlerinde oynanmış web sayfalarıdır. Ziyaretçiyi sitenin içlerine doğru çekecek "geçiş sayfaları" olarak görev yaparlar. Bu tür sayfaların abartılı kullanımı arama motorlarından dışlanmaya yol açabilir.

G

Google Bombası - Son zamanlarda sık ratlanan bu uygulamada, Google arama sonuçları arasında yükselmek ya da Google'ın arama sonuçlarını yönlendirmek amacıyla tek bir siteye bağlantı veren çok sayıda site kurulur.

Google Dansı - Google'ın arama motoru sıralamalarını yenilediği döneme verilen ad. Bu süre içinde Google'ın asıl ve yedek (ikincil) liste sıralamaları farklı olur.

H

Hidden Text (Gizli Yazı) - Sayfanın arka planıyla aynı renk yapıldığı için arama motoru örümcekleri/robotlarına görünen ancak site ziyaretçilerine görünmeyen yazılardır. Sayfaya içerik katmadan, ilave anahtar kelimeler eklemek için kullanılır. Çoğu arama motoru gizli yazı kullanan web sitelerini cezalandırır.

K

Keyword (Anahtar Kelime) - İnternette arama yaparken, istediğimiz sonuçları getirmesi için arama motoru kutucuklarına yazdığımız kelime ya da kelimeler gurubudur. Arama motorları, veritabanındaki siteler/sayfalar arasından yalnızca kendi bildiği belli formüllere (algoritm) göre o anahtar kelimeyle en alakalı bulduğu sayfaları bir sıralama yaparak karşımıza getirir.

Keyword Density (Anahtar kelime Yoğunluğu) - Anahtar kelimenin bir sayfada geçme sıklığıdır. Google için herhangi bir kelimenin bir site/sayfa ya da yazının anahtar kelimesi sayılabilmesi için en az %2-%3 yoğunluğa sahip olması gerektiğine, %6-%7'nin üzerinde anahtar kelime yoğunluğuna sahip sayfaların spam sayılma olasılığı olduğuna inanılıyor.

Keyword Stuffing (Keyword Doldurmak) - Arama motorları sonuçlarını yönlendirmek için sayfayı anlamsız şekilde ardarda sıralanmış anahtar kelimelerle doldurmaya verilen ad.

L

Link Popularity (Link Popülaritesi) - Bir siteye link veren önemli sitelerin sayısıdır.

P

PageRank (PR) - Google'ın internet sayfalarını "PR0 ile PR10" arasında derecelendirmek için geliştirdiği bir değerlendirme yöntemi. Tam olarak bilinemese de Google'ın bu derecelendirme için en çok bir sayfanın link popülaritesine önem verdiği biliniyor.

PPC (Pay-per-Click) - Tıklama Karşılığı Ödeme olarak Türkçe'ye çevrilebilen sözcüklerin kısaltması. Reklamverenin yalnızca reklamları tarafından sağlanan trafiğin karşılığını ödediği reklamcılık biçimine verilen ad.

S

SE (Search Engine) - Arama motoru. En büyükleri Google, Yahoo!, AltaVista, MSN'dir.

SEO (Search Engine Optimization) - Türkçe'de Arama Motoru Optimizasyonu olarak geçer. İnternet sitelerinin/sayfalarının istenilen anahtar kelimelerde, arama sonuçlarında üst sıralarda çıkabilecekleri şekilde arama motoru robotunun aradığı kriterlere uygun düzenlenmesidir. Bir sitenin/sayfanın arama motoru sonuçlarında ilk sıralarda yer alması sitenin tanınma potansiyelini çok arttırdığı için internet pazarlamacılığı için çok önemli sayılan bir uygulamadır.

SERP (Search Engine Results Pages) - Arama motoru sonuçları sayfaları.

Spam - SEO'da yani arama motoru optimizasyonunda rastlanan "spam", sayfanın ilk sıralarda çıkmasını sağlamak için tasarlanan ve arama motorunun kurallarını ihlal eden yönlendirme tekniklerine denir.

Spider (Örümcek) - Arama motorları için internet sayfalarını sitelerini ziyaret ederek, tarayan ve belli bilgileri arama motorunun veritabanına kaydeden program.

Stop Word - Çok sık kullanıldıkları için anlama bir katkısı olamayacağından arama motorları tarafından yok sayılan "ve, ile, ya da" gibi kelimelerdir.
Cinsellik içeren ve arama motorları tarafından içinde geçtikleri sitenin arama motoru sıralamalarından dışlanmasına yol açabilecek belli bazı kelimelere de "stop words" denilir. Arama motoru robotları, interneti tararken bu kelimelere rastladığında o siteyi hemen terk edip, o siteyle ilgili o ana kadar toplamış oldukları tüm bilgileri de
veri hafızalarından siliyorlar. Aynı siteyi bu sözcüklerden temizleyip tekrar kayıt ettirseniz de kabul edilmiyorlar.

Submission (Kayıt) - Bir URL'yi taranması için bir arama motorunun URL'ler listesine eklemektir. Bir arama robotu örümceğine sayfanın taranması ve nihayetinde arama motorunun veritabanına eklenmesi için haber vermektir.

T

Tag (Etiket) - Web sayfasının HTML kodu arasında yer alan

Title Tag - Bir web sayfasının tepesine yerleştirilen ve başlık çubuğunda sergilenen meta bilgi tag'i.

Meta Tags - Bir internet sitesinin HTML kodlamasının bir parçası olan ve sayfayı tanımlamak için kullanılan tag'ler (etiketler) grubu. Arama motoru optimizasyonu açısından bunların en önemlileri TITLE (Başlık), DESCRIPTION (Tanım), ve KEYWORDS (Anahtar kelimeler) tagleridir.

Traffic - Bir internet sitesine ya da sayfasına gelen ziyaretçilerin sayısıdır. Belli bir zaman diliminde gelen toplam ziyaretçi sayısını, sayfa hitini, sayfa gösterimlerini, vb. ifade eder. genel bir terim olarak da internette dolaşan veriyi tanımlar.

4 Temmuz 2009 Cumartesi

C Do while Loop

C'de işleyeceğimiz bir başka döngü çeşidimiz de do / while döngüsüdür. Yaptığı iş hemen hemen while döngüsü ile aynıdır fakat tek bir fark vardır ki koşul sağlansa da sağlanma sa do / while döngüsü en az 1 kez çalıştırılır.

Konuyu biraz açacak olursak while döngüsünde koşul sağlanmadığı takdirde döngü içindeki komut çalıştırılmaz. Çünkü koşul başta belirtilmiştir. Fakat do / while döngüsünde koşul sonda kontrol edileceği için en az bir kez çalıştırılır.

Şimdi ufak bir örnek yapalım. Şöyle ki kodumudaki sayaç değeri 5'ten küçükse ekrana merhaba dünya yazalım. Eğer 5 ten küçük değilse merhaba dünya yazmasın. While ile do / while arasındaki farkı gözlemlemek için de sayaç degerimizi 10 yapalım.

Şimdi kodlara bakalım:

Aşağıdaki kod while döngüsü ile düzenlenmiştir. Sayaç başlangıç değeri 10 olarak atanmıştır. Koşul sağlanmadığı için ekrana herhangi birşey yazılmayacaktır.

# include
# include

int main()
{
int sayac = 10;

while (sayac < 5) { printf("merhaba dunya"); sayac ++; } getch(); }



Şimdi aynı kodu do / while ile yapıyoruz. Sayaç değeri yine 10 olarak belirlenmiştir. Fakat do / while'ın mantığına göre döngü en az bir kez çalışacağından 1 kez ekrana "merhaba dünya" yazdırılacaktır.

# include
# include

int main()
{
int sayac=10;

do {
printf("merhaba dunya! \n");
sayac++;
} while(sayac<5); getch(); }



Umarım aradaki farkı anlatabilmişimdir. Tüm c sever arkadaşlara kolay gelsin.

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

http://rapidshare.com/files/252043185/do_while.rar.html

349 Yüksek Kaliteli Object Photo

Banner, logo, wallpaper vb tasarımlarda kullanabileceğiniz 349 adet yüksek kaliteli nesne resmini sizinle paylaşmak istedim.

Umarım dizayn ile ilgilenen arkadaşların işine yarar. Kolay gelsin.

Download :

http://depositfiles.com/files/x0qr4buop
http://depositfiles.com/files/yngnx3b74
http://depositfiles.com/files/002bauu8y
http://depositfiles.com/files/jmhacu8xd
http://depositfiles.com/files/1zgkrwahi
http://depositfiles.com/files/2lzd7sfa8
http://depositfiles.com/files/gkygpav2n
http://depositfiles.com/files/41gp4pz62

1 Temmuz 2009 Çarşamba

Msn Plus Komutları

Günümüzün en popüler chat programı olan msn'i için ek özellikler barındıran msn plus programını hepimiz kullanan arkadaşlara anlık ileti penceresinde uyulayabilecekleri hızlı ve kullanışlı komutlardan bahsedeceğim bu yazımda.

1) /all yazacağınız iletiyi msndeki herkese gönderir.
2) /appearoffline çevrim dışı görünmenizi sağlar.
3) /assist ile uzaktan yardım istersiniz.
4) /away durumunuzu dışarda olarak değiştirir.
5) /block kişinin e-postası bu komut ile girdiğiniz msn adresini bloklarsınız.
6) /brb ile durumunuz hemen dönecek olarak değiştirilir.
7) /busy ile durumunuz meşgul olur.
8) /call e-posta ile e-postasını girdiğiniz kişi ile konuşma oluşturulur.
9) /close ile msn penceresi kapanır.
10) /ctcinfo bu komut ile kişinin bilgileri listelenir (en sık kullandığım komut)
11) /displaypic kullanıcı resminiz değişir.
12) /emails e-mail yazmanız sağlanır.
13) /emoticon msn ifadeleriniz görüntülenir.
14) /find aranacak metin ile konuşma geçmişinizde metin araması yapar.
15) /lock msni kitler.
16) /logging açık / kapalı girişi sağlar.
17) /me ileti ile auto msj yapabilirsiniz.
18) /name yeni ad ile yeni kullanıcı adı girebilirsiniz.
19) /webcam karşı taraf ile görüntülü konuşma yapmanız sağlanır.
20) /youtube youtube video bağlantısı kurar.
21) /run komut satırı yada dosya adı ile dosya çalıştırmayı sağlar.

Bu komutlar sadece msn plus yüklü olduğu durumlarda kullanılabilir.

C { İf / Else / Switch Tutorial 2 }

C dilinde yazılmış bir su fatura ücreti hesaplama programı. Programın kaynak kodu ve çalışma metodunu aşağıdaki linkte bulabilirsiniz.

İf / else / switch için gayet güzel ve kapsamlı bir örnek.

İndirmek için:

http://rapidshare.com/files/250859696/su_fatura.rar.html

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.