Adam And Eve
[Paul Anka]
45'lik - 1960
Birkaç kuşak üzerinde derin etkiler bırakan Paul Anka pop müziğin en tanıdık simalardan biri şüphesiz. 1960’ta 45’lik olarak piyasaya sürülmüş olan Adam And Eve şarkısı Adem ile Havva’nın bilinen hikayesini konu alıyor...
Seneler önce Ottawa’da yürürken Paul Anka caddesiyle karşılaşıncaya kadar ben onu hep Amerikalı sandım. 2006’daki İstanbul konserine gidemediğim için ise hala yanarım…
[Makale] 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);
[Makale] 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[]) { /* ... */ }
[Makale] 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.
[Blog] 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.
[Makale] 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.
[Makale] 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.
Rubber Soul (The Beatles-1965).
Courier New. Sabit genişlikli fontlara karşı büyük bir sempatim var.
Bence hukukta "bug" var. Savcılar için sınır kontrolü yapılmamış.
Annemi 1989 yılında kaybettim. C ve Sistem Programcıları Derneği'nin de denetleme kurulu üyesi olan arkadaşımız Ertan'ı 2007'de kaybettik...
Futbolla aram pek yok. Maçları da takip edemiyorum. Fakat yine de (herhalde Eskişehir'li olmamdan, Amcam'ın Eskişehirspor'un saha hekimliğini yapmış olmasından, amcamın oğlunun Eskişehirspor'da top koşturmuş olmasından ve Eskişehirspor'un 70'li yıllarada İstanbul takımlarına kafa tutmuş olmasından dolayı) Eskişehirspor'u tuttuğumu söyleyebilirim.
60'lı ve 70'li yıllar ağırlıklı Rock ve Rock'n Roll. Vokal ağırlıklı müziği severim. Klasik müzik de dinlerim.
Evet, IBM main frame'leri için kart delmiştim.
F1
Satranç taşlarının toplam puanı makalelerin zorluk derecesini gösteriyor. Piyon = 1, At = Fil = 3, Kale = 5, Vezir = 9.
Bilmiyorum, ben de merak ediyorum...
Dersi verenlerin yalnızca Fortran bilmeleri nedeniyle.
Gerektiğinde kullanın. Acaba hocanız "yahu madem kullanmayacaktık o halde bunu dile neden koymuşlar" gibi bir soruya nasıl yanıt verirdi?..
Linux için Türkçe bir dağıtım hazırlanmasını olumlu karşılıyorum ve destekliyorum. Ancak "Ulusal İşletim Sistemi" tanımlamasını komik buluyorum. Ulusal İşletim Sistemi diyebilmek için ciddi bir mühendislik katkı gerekir. Bu katkı da özellikle çekirdek düzeyinde olmalıdır.
Temel olarak 3 tür işten para kazanıyorum:
1. Eğitim
2. Danışmanlık ve problem çözme (genellikle şirketlere yönelik)
3. Proje geliştirme (tek başına ya da grup yöneticisi olarak)
Bunların ağırlıkları zaman içerisinde değişiyor. Şu sıralar hafta sonum tamamen eğitimle geçiyor, hafta içi diğer işlerle ilgileniyorum. Kitap işinden para kazanamıyorum. Kitaplarımdan elde ettiğim kazanç, kitaplara verdiğim paradan çok daha düşüktür.
Mevzuata göre evet fakat pratikte hayır. Şirketler belli yaşı geçmiş programcıları ya müdür yapıyorlar ya da işten atıyorlar. Gençleri daha az parayla çalıştırabiliyorlar. Ayrıca "doktorun yaşlısı, programcının genci makbuldür" biçiminde toplumda yaygın ve yanlış bir inanış da var.
CSD C ve Sistem Programcıları Derneği