Author Archives: Özcan Acar

About Özcan Acar

Bilgisayar mühendisi olan Özcan Acar 1997 yılından beri programcı olarak çalışıyor. KurumsalJava.com, SmartHomeProgrammer.com ve Mikrodevre.com adresleri altında blog yazıyor. Pratik Programcı Yayınları bünyesinde Pratik Spring, Pratik Agile, Pratik Git ve Design Patterns ismini taşıyan kitapları bulunmaktadır. 21.12.2009 tarihinde Java Champion olarak seçildi.

Neden Her Programcının Bir Blog Sayfası Olmalı?

Blog kelimesi Web Log kelimelerinin kısaltılmış halidir. Bir blogu dijital ortamda tutulan bir günlük olarak düşünebiliriz. Aşağıda sıraladığım sebeplerden dolayı her programcının bir blog sayfası olmalı: Blog bir programcının özgürce kendini ifade etmesini sağlar. Söyleyecek bir şeyi olan bir programcı blogu aracılığı ile okurları ile buluşur. Programcı okurlarından geribildirim niteliğinde yorumlar alır. Bu kendi düşüncelerini […]

Benlik Güden Programcılar

Geçenlerde bir okuyucumdan bir e-posta aldım. İletisinin bir bölümünde şöyle yazmış: “Mağrur programcı ustalar sizin gibi mi? Burnundan kıl aldırmaz. Onlara da şöyle diyorum: Mağrur olma padişahım senden büyük Google var“. Bunu okuyunca aklıma bu yazıyı yazmak geldi. Ninem bize ufakken “benlik gütmeyin yavrularım, güzel bir şey değil” derdi. Yıllar sonra ne demek istediğini anladım. […]

Melek Programcılar ve Şeytan Yatırımcılar

Melek yatırımcıları (business angels) bilirsiniz; hani şu yeni kurulmuş firmalara (startup) yatırım yapan şahıslar. Melek programcıları bilir misiniz? Bunlara gelmeden önce şeytan yatırımcıları açıklamam gerekiyor. Melek yatırımcıların yanında bir de şeytan yatırımcılar (business devils) vardır. Bunlar da melek yatırımcılar gibi yatırım yaparlar, ama niyetleri iyi değildir. Maksatları bellidir; kısa zamanda firmayı satıp (exit), para yapmak. […]

JVM Nasıl Çalışır Yazı Serisi – Old Generation Parallel Garbage Collector Hatası

Eğer özellikle bir Garbage Collector türü seçimi yapılmadı ise, 2 GB ve üzeri ve Windows işletim sistemi ile çalışmayan sunucularda JVM otomatik olarak paralel çalışan Garbage Collector’ü kullanıyor (-XX:UseParallelGC). Bu Garbage Collector sadece Young Generation üzerinde paralel, Old Generation için kullanılan Garbage Collector ise dizisel (serial) çalışıyor. Her iki heap alanında da paralel çalışan Garbage […]

JVM Nasıl Çalışır Yazı Serisi – Çöplerin Efendisi

Java programcısının çok sadık bir hizmetçisi var. Her türlü çöplüğü, pisliği arkasından devamlı toplar, hiç sesini çıkarmaz. Çöplerin efendisidir, ama bir o kadar da mütevazidir. Kimseye belli etmeden işini görür. Bu yüzden birçok Java programcısı onun farkında bile değildir. Ama o işini yapmasa Java programcısının hali çok vahim olur, C/C++ ile kod yazan meslektaşlarından bir […]

Mantığın Köleleri

Programcılık Sanat mı, Zanaat mı? başlıklı yazıma gelen yorumlar, programcılığın sanat olduğu yönünde. Bunun aksini düşünenler de var. Programcılığın bir sanat olarak algılanması subjektif ve bir yanılgıdır. Programcılığın bir sanat olmadığının altını bu yazımla tekrar çizmek istedim. Sanat ve sanat eserleri görecelidir. İnsanlik var olduğundan beri sanat vardır, ama hala bu konudaki tartışmalar son bulmamıştır. […]

Java Heap Nedir?

Herhangi bir Java sınıfından new operatörü ile bir nesne oluşturulduğunda, bu nesnenin bilgisayarın hafızasında konuşlandırıldığı alana Java Heap adı verilir. Java Heap JVM tarafından oluşturulur ve aşağıdaki hafıza alanlarından oluşur: Eden – new operatörü ile oluşturulan tüm nesneler önce bu hafıza alanında oluşturulur. Survivor – nesneler old heap hafıza alanına transfer edilmeden önce bir müddet […]

JVM (Java Virtual Machine) Nedir?

JVM (Java Virtual Machine – Java Sanal İşlemcisi) C++ dilinde yazılmış bir programdır. Bir Java programı javac.exe ile derlendikten sonra byte code ismi verilen bir ara sürüm oluşur. Byte code, ana işlem biriminin (CPU – Cental Processing Unit) anlayacağı cinsten komutlar ihtiva etmez, yani klasik Assembler değildir. Java byte code sadece JVM bünyesinde çalışır. JVM, […]

Matrix’de Yaşayan Programcılar

Hemen hemen her programcının Matrix filmini seyrettiğini düşünüyorum. Star Wars gibi Matrix filmi de biz yazılımcılar için bir kült. Biraz abartı da olsa fikir olarak çok enteresan, en azından bir yazılımcı için. Matrix’de kullanılan yazılım sistemi dikkat çekiyor. En çok ilgimi çeken dejavü olarak isimlendirilen yazılım hataları (bug) ve Neo’nun bir tren istasyonunda hapis kalması […]

Meğer Neymişiz!

Bu sabah yanımda kocaman, Coca Cola pet sişeleri taşıyan TIR vari bir araç durup, yol soruyor. Sürücünün neden navigasyon aleti yok diye düşünürken, bu yazıyı yazma fikri oluşuyor kafamda. Şimdi birkaç saniyeliğine bir dünya hayal edelim; İçinde IPhone ve Android akıllı telefonların olduğu, ama app denen birşeyin bilinmediği, bilgisayarların olduğu, ama işletim sistemi diye birşeyin […]

Programcıyım, Yönetici Değil!

Türkiye’de genç programcı adaylarının kariyer planlaması şu şekilde: Üniversite »» Birkaç yıl programcılık »» Proje yöneticiliği »» Bölüm yöneticiliği »» Bölüm müdürlüğü Benim kariyer planlamam şöyle: Üniversite »» Ömür boyu programcılık Ben programcıyım, yönetici değilim! Üniversitede eğitimini almadığım birşey nasıl olabilirim? Neden programcıların çoğu bir yerlere yönetici ya da müdür olmak istiyor? Bunun açıklaması kolay: […]

Programcılık Sanat mı, Zanaat mı?

Çoğu zaman aklımda olan bir soru var: „Programcılık bir sanat mıdır yoksa bir zanaat mıdır? Biz programcılar sanatkar mıyız yoksa zanaatkar mıyız? Vikipedi’ye baktığımızda sanat ve zanaat için aşağıdaki tanımlamayı yapmakta: Sanat en genel anlamıyla, yaratıcılığın ve hayalgücünün ifadesi olarak anlaşılır. Tarih boyunca neyin sanat olarak adlandırılacağına dair fikirler sürekli değişmiş, bu geniş anlama zaman […]

Battı Balık Yan Gider

Batan projeleri ben batan gemilere benzetiyorum. Batmaya meğil gösteren bir gemi nasıl bunu belli ediyorsa, batmaya meğilli bir yazılım projesi de parmak kaldırıp, dikkat ben batıyorum der. Bir projenin batacağı nasıl anlaşılır? Şöyle: Big design up front olarak isimlendirilen, kahin vari, bugünden yarının nasıl olacağını bilme kibiri ile tüm yazılım mimarisi ve tasarımının yazılım öncesi […]

Kod Kata ve Pratik Yapmanın Önemi

Bizim ailede müzisyen geni var, babamdan bana geçmiş olsa gerek. Babam çok iyi bir ses sanatçısıdır. Keşke benim de onun kadar güzel sesim olsa diye düşünmüşümdür her zaman. Ama ne yazık ki yaratıcının benimle olan planları başka türdenmiş. İyi bir dinleyici olduğumu düşünüyorum. TSM parçalarını seslendirmeye çalıştığımda babam, detone olmadığımı söyler. Ama sesimin ne kadar […]