Sadece iki endüstri, müşterilerini kullanıcı olarak adlandırır.

Anonim

Bana Atılan E-Postaların Yanıtları

Sevgili Arkadaşlar...

Bu site aracılığıyla -bazıları sorulardan oluşan- pek çok e-posta alıyorum. Ancak yoğunluk nedeniyle bazılarına yanıt yazamadım.  Sakın unuttum sanmayın ve "adam bir yanıt bile yazmadı" diye düşünmeyin :-). Bundan sonra atacağınız e-postalara da daha kısa bir süre içinde yanıt vermeye çalışacağım. Gecikme için özür diliyorum...

 

Lütfen Alıntılarda Kaynak Belirtiniz

Çeşitli Internet sitelerinde yazmış olduğum makalelerden, ders notlarından, çizimlerden, kaynak kodlardan vs. bire bir alıntı yapıldığını, ancak kaynak belirtlmediğini görüyorum. Lütfen bu gibi alıntlarda kaynak belirtiniz.

Kitap Eleştirisi

Artık her hafta sitede bilgisayar alanında basılmış bir kitabın eleştirisini göreceksiniz. Umarım beğenirsiniz...

Tarihe Göre

Yeni İçerik

C’nin Standart Dosya Fonksiyonlarının Uyguladığı Tamponlama Mekanizması

    Standart C fonksiyonlarını kullanmadan bir dosyanın her byte’ı üzerinde sırasıyla işlem yapmak isteyelim. Herhalde ilk akla gelecek yöntem doğrudan işletim sisteminin sistem fonksiyonlarını çağırmak olacaktır. Örneğin UNIX/Linux sistemlerinde dosyayı read fonksiyonuyla (Windows sistemlerinde ReadFile fonksiyonuyla) byte byte aşağıdaki gibi okuyabiliriz:
 
int fd;
ssize_t result;
unsigned char ch;

if ((fd = open("test", O_RDONLY)) < 0) {
    perror("open");
    exit(EXIT_FAILURE);
}

while ((result = read(fd, &ch, 1)) > 0) {
    /* Okunan byte işleniyor */
}   

if (result < 0) {
    perror("read");
    exit(EXIT_FAILURE);
}   

close(fd);

Programların Komut Satırı Argümanları

    İşletim sistemi tarafından prosese geçirilen komut satırı argümanları program içerisinden çeşitli biçimlerde elde edilebilmektedir. En yaygın yöntem komut satırı argümanlarının programın başlangıç fonksiyonunun parametrelerinden elde edilmesidir. Örneğin, C ve C++’ta komut satırı argümanları main fonksiyonuna parametre olarak geçirilirler. Bu dillerin standartlarına göre programın başlangıç noktasını (entry point) belirten main fonksiyonunun parametrik yapısı ve geri dönüş değeri aşağıdaki iki durumdan biri biçiminde olmalıdır:

int main(void)  { /* ... */ }
int main(int argc, char *argv[]) { /* ... */ }

UNIX/Linux Sistemlerinde Proseslerin Yaratılması ve Sonlandırılması

    Hemen her işletim sistemi bir proses yaratıldığında o prosese özgü bilgileri bir veri yapısında saklar. Çalışmakta olan proseslere ilişkin bilgilerin saklandığı veri yapısına proses kontrol bloğu denilmektedir.[1] UNIX türevi sistemlerde prosesin gerçek ve etkin (effective), kullanıcı ve grup id’leri, prosesin çalışma dizini, açmış olduğu dosyalar gibi prosese özgü önemli bilgilerin hepsi proses kontrol bloğunda tutulmaktadır. Proses kontrol bloğunun nasıl düzenlendiği ve tam olarak hangi elemanlara sahip olduğu sistemden sisteme, hatta aynı sistemlerde versiyondan versiyona değişebilmektedir. Örneğin Linux sistemlerinde proses kontrol bloğu oldukça fazla elemana sahip olan task_struct yapısı ile temsil edilmiştir.  Bu yapının bir bölümünü aşağıda veriyoruz (Version:2.6.35, include/linux/sched.h):

UNIX/Linux ve Windows Sistemlerinde Stdin, Stdout ve Stderr Dosyaları

    Yalnızca UNIX/Linux sistemlerinde değil modern işletim sistemlerinin çoğunda aygıtlar birer dosyaymış gibi ele alınmaktadır. Örneğin klavye ve ekran -aslında birer dosya olmadığı halde- işletim sistemi tarafından sanki birer dosyaymış gibi işleme sokulurlar. Aygıtlara ilişkin bu tür dosyalar için de birer dosya betimleyicisi ve dosya nesnesi vardır. Bu betimleyicilerle işlem yapıldığında işletim sisteminin dosya alt sistemi aslında bu dosyaların birer aygıta ilişkin olduğunu anlar ve okuma/yazma amacıyla o aygıtlara yönelir. UNIX türevi sistemlerdeki çokbiçimliliği (polymophism) andıran bu tasarıma Sanal Dosya Sistemi (Virtual File System) denilmektedir.  

C#'taki Yapı ve Sınıf Nesneleri Nerede Yaratılıyor?

Pek çok C# programcısının sınıf ve yapı kavramlarıyla stack ve heap kavramlarını yanlış bir biçimde ilişkilendirdiğini görüyorum. Örneğin, “yapı nesneleri stack’te sınıf nesneleri heap’te tutulur” biçiminde yanlış anlaşılmaya yol açacak bilgiler veren yerli ve yabancı çok sayıda yazı ve makaleyle karşılaştım. Konuya biraz açıklık getirmek istiyorum.

UNIX/Linux Sistemlerinde Dosya Betimleyicilerinin Anlamı

    UNIX/Linux sistemlerinde her prosesin proses tablosu yoluyla erişilen bir dosya betimleyici tablosu (file descriptor table) vardır. Dosya betimleyici tablosu bir gösterici dizisi biçimindedir. Betimleyci tablo içersindeki her gösterici açılmış bir dosyanın bilgilerinin tutulduğu ve ismine dosya nesnesi (file object) denilen bir veri yapısını gösterir. open fonksiyonundan elde edilen dosya betimleyicisi (file descriptor) prosesin dosya betimleyici tablosunda bir indeks belirtmektedir.

Proseslerin Çevre Değişkenleri

    Modern işletim sistemlerinde her prosesin bir çevre değişken bloğu vardır. Prosesin çevre değişken bloğu çevre değişkenlerinden ve onların değerlerinden oluşmaktadır. Örneğin, MESAJ bir çevre değişkeninin ismi olabilir, “Merhaba Dunya” ise onun değeri olabilir. Çevre değişkenleri pek çok işletim sisteminde proses yaratılırken belirlenebilmekte  ya da üst prosesten (parent process) aktarılabilmektedir. Çevre değişkenlerinin üst prosesten aktarılması en çok karşılaşılan tipik durumdur.

Temmuz
03
2009

Michael Jackson’ın Ardından...

    Gecenin bir yarısı üzerinde çalıştığınız programı tam da derleyip çalıştıracakken telefonunuz çalsa ne yapardınız? Derlemenin sonucunu mu beklerdiniz, yoksa bir donanım kesmesi oluşmuşçasına telefona mı koşardınız? İşte geçen gün ben derlemenin sonucunu beklemeyi tercih ettiğim için çalan telefona yetişemedim. Fakat sonra içimi bir endişe kapladı. Yoksa gecenin bu saatinde kötü bir haberin iletilmesi için mi aranmıştım?..
    
    Tıraş olma zamanımın gelmiş olduğunu düşündüğümden, o sabah kalktıktan sonra hemen berberin yolunu tuttum. Ilımlı İslamcı, milliyetçi ve daha birkaç şeyin karışımı olan bir berberim var. Tıraş sırasında hep bir yandan da tartışırız.  Hani bir gün elindeki usturayı yanlışlıkla (!)  boğazıma kaydırırsa şaşırmayın. İşte berberim bu tartışmalı tıraş sırasında -herhalde lafı ahirete getirmek için olsa gerek- ansızın “abi bak Michael Jackson da öldü işte” demesin mi? Önce şaka yaptığını sandım. Çünkü berbere giderken arabada radyo dinliyordum ve “eğer Michael Jackson ölmüş olsaydı herhalde duyardım” diye düşündüm. O Michael Jackson ki, Elvis Presley ve Beatles’tan sonra zaman içerisinde kalıcı olacağına bizi inandıran tek kişiydi...
 
     Berberden çıktım. Michael Jackson ölmüş müydü gerçekten? Arabaya atladım. Ve nihayet radyodaki haberlerden Jackson’ın gerçekten ölmüş olduğunu anladım. Elvis gibi kalpten gitmiş adam...

    Görülen o ki, Jackson ailesi tam bir müzisyen üretim atölyesiymiş. Jackson kardeşlerden oluşan Jackson 5 bir tıfıl grubu olmasına karşın 70’li yıllarda önemli başarılar elde etti. Ben onların birkaç parçasını daha o yıllarda dinlemiştim. 80’li yıllarda Michael’ın çıkış yaptığı sıralarda bu adamın hangi Jackson olduğunu tam olarak çıkaramasam da bütün dikkatlerin yavaş yavaş onun üzerinde yoğunlaşmakta olduğunu şaşkınlıkla izledim. Artık o bir mega star olarak anılmaya başlamıştı. Thriller albümü tüm dünyada olduğu gibi Türkiye’de de ortalığı kasıp kavurdu. Açık söylemek gerekirse tüm eklemlerine kadar her yeri oynayan bu adamın dansı da müziği de benim tarzım değildi. Hem zaten ben Beatles aşkı ile doluydum ve John da daha yeni öldürülmüştü. Kimdi ki bu milyonlarca plak satan çömez? Ancak adamın yeteneği de görmemezlikten gelinemezdi... Perde aralığı dar olan yavaş şarkıları söylemek zor değildir. Fakat bu adam inişli çıkışlı parçaları hızlı bir tempoda hiç frekans kaydırmadan olağanüstü bir biçimde söylüyordu. Hatırlayanlarınız olacaktır; 70’lerin ortalarından sonra tüm dünyada başlayan dans furyası 80 darbesinden sonra Türkiye’yi de etkisi altına aldı. Michael’ın patlama dönemi disko müziğinin de yükseldiği bu yıllara denk geliyor. O artık popun kralı olmuştu...Şöyle bir baktığımda Michael'ın Beat It klibinin bu zamana kadar yapılmış en iyi müzik klibi olduğunu görüyorum. Harlem serserileri, çakıdan bozma itler, sustalı birileri... şiddet, müzik ve dans... Bu klipte Michael formunun zirvesindedir. 

    Michael Jackson’ın bir gün Paul McCartney’e telefon ederek “Paul yeni hitler yaratmaya var mısın?” dediği rivayet olunur. Her daim zirveye yakın bir yerde bulunmak isteyen Paul bu yeni yetmenin davetini kabul ediyor. İşte Girl Is Mine, Say Say Say bu işbirliğinin sonucu olarak ortaya çıkmış şarkılar...    

     Bağımlılığın en önemli göstergelerinden biri tolerans geliştirmedir. Bağımlılık yaratan maddeye organizma uyum sağlar ve artık onsuz yapamaz hale gelir. Önceki alınan miktar aynı etkiyi sağlamak için bir süre sonra yetersiz kalır. Böylece doz artırımına gidilir. Bazen artırım dikkatsizce yapılır. Halk arasında altın vuruş diye bilinen vakaların çoğu böyle gerçekleşmektedir. İşte iddia ediyorum ki şöhret de tıpkı sigara gibi, alkol gibi, eroin gibi bağımlılık yapan bir olgudur. Şöhrete ve onun getirdiklerine alışmış starlar artık onsuz yapamaz hale gelirler. Sıradan insana dönmek korkusu onları yer bitirir. Bizler gibi sıradan insanlar onların çektikleri bu acıları anlayamayız (!). Yaşları ilerledikçe bir miktar çaptan da düşen starların bu acıklı durumları pek çok biyografide ayrıntılarıyla ele alınmaktadır. Üstelik bunların çoğunun etrafında yalakaları ve yiyicileri de vardır. İşten anlamayan bu starlar yanlış yatırımlara da kolaylıkla yönlendirilebilirler. Zencilerdeki gidiş daha da kötü olma eğilimindedir. Kim ne derse desin istatistikler -renkleri açılmış olsa bile- zencilerin batma olasıklıklarının beyazlardan daha yüksek olduğunu göstermektedir. (Örneğin, Rock and Roll’un kurucularından olan, O herkesin örnek aldığı Chuck Berry 80’inin üzerinde para kazanmak için hala orada burada sahne almaktadır.) İnanıyorum ki böyle bir süreç, kendine yeteri kadar bakmayan starların damarlarını tıkayan, kalp ritimlerini bozan etkenlerden bir bölümünü de oluşturmaktadır... 
        
    O gün öğlene doğru İzzet aradı ve bir süre Michael Jackson’ın ölümü üzerine konuştuk. “Ben dün gece öğrendim. Sana haber vermek için aradım. Ama açmayınca uyuyorsundur diye üstelemedim” dedi. Demek endişelenmekte haklıymışım...

    Michael Jackson farklı biriydi. Ölerek aynı zamanda ölümsüzlüğe de adım atmış oldu. O düzgün sesiyle, müzikal zekasıyla ve kıvrak danslarıyla aklımızın bir köşesinde, kaybettiğimiz diğer insanlarla birlikte hep kalacak. Tüm sevenlerinin başı sağolsun...

 

Haftanın Böceği Yukarı