Bu soru BTSoru.com’da soruldu. Benim cevabım şu şekilde oldu: Okumaya devam et
Yazar arşivleri: Özcan Acar
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 Collector’ü aktif hale getirmek için -XX=+UseParallelOldGC JVM parametresinin kullanılmasi gerekiyor. Bunu BizimAlem.com için çalışan uygulama sunucularından birinde denemek istedim. BizimAlem için JDK 1.5 kullanımda.
Yeni Bir Programlama Dilini Öğrenmenin En Kolay Yolu
Geçenlerde bir Abap kitabı aldım. Güya Abap ögreneceğim! Abap SAP tarafından geliştirilmiş bir programlama dili ve SAP’nın ERP sistemlerini programlamak için kullanılıyor. Okumaya devam et
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 farkı kalmaz, bilgisayarın hafızası denilen kara delikte kaybolur gider, yazdığı programlar devamlı sallanır.
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.
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.
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, derlenen Java programı için ana işlemci birimi olma görevini üstlenir. Bu özelliginden dolayı Java programlarını değişik platformlar üzerinde çalıştırmak mümkündür. Her platform için bir JVM sürümü Java programlarını koşturmak için yeterli olacaktır. Bu sebepten dolayı Java “write once, run anywhere – bir kere yaz, her yerde koştur” ünvanına sahiptir.
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ı ve trene binmesine rağmen tekrar tekrar aynı istasyona geri dönmesi, yani bir nevi for döngüsü olmuştur. Bir for döngüsünün bu kadar güzel görselleştirilmesi beni çok etkilemişti. Böyle bir sistemin entegrasyon testleri nasıl yapılıyor acaba? Okumaya devam et
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.
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üğü
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:
Ekibin Dikkati ve Saygısı Nasıl Kazanılır?
Her programcı yeni bir ekibe dahil olduğunda kendisini ispatlamak zorundadır. Bu gerçekleşene kadar ekip içindeki diğer programcılar yeni programcıyı dikkate almazlar. Birilerinin ekibe dahil olduğunu beyinlerinin en arkasında çalışan bir thread ile belki farkederler, ama bunu dikkate almadan günlük işlerine devam ederler. Okumaya devam et
Eşli Programlama, Code Review, Code Retreat ve Adada Yaşayan Programcılar
Bir programcıyı alıp bir adaya koysanız, diğer insan ve progcılarla bağlantı kurmasını engelleseniz, kendi başına çalışmasını ve kendisini geliştirmesini isteseniz, bu programcı programcılık konusunda nasıl bir gelişme sağlardı? Okumaya devam et
İnşaat ve Yazılım Mühendisleri Arasındaki Fark
İnşaat mühendisleri:
Okumaya devam et
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:
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 kötü olduğunu ben bilirim. Keşke babam gibi güzel bir sesim olsaydı. Ufakken hatırlıyorum: TV yok; internet yok; radyo var; arkası yarın ve TSM var. TRT radyo yayınlarını dinleyerek büyüdüm; ne güzel günlerdi…
Çevikliğin Böylesi
Son zamanlarda yazılımla yakından ya da uzaktan ilişkisi olan herkesin ağzında olan kelime; çeviklikten bahsediyorum. İngilizce de agile, lean gibi kavramlar kullanılıyor ve artık her şey için kullanılmaya başlandı. Gören de zannederki artık her proje çevik yazılım yöntemleri ile yapılıyor, her şey yolunda.
Programcılar yazar olsalardı keşke!
Birçok programcının büyük bir büroda çalıştığını düşünelim ve böyle bir ortama girdiğimizi. Programcı olduklarını bilmiyoruz, ne yaptıklarını da. Bu çalışanların ne yaptığını düşünürdük? Büyük ekranlarda devamlı birşeyler yazdıklarını gözlemleyip yazar olduklarını düşünürdük belki. Birşeyler yazana yazar denir. Bu bir roman, bir ders kitabı ya da bir yemek tarifi olabilir ya da bir kod parçası.
SOLID
SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation ve Dependency inversion) yazılım tasarım prensipleri için kullanılan bir kısaltmadır. Yazılım yaparken SOLID uygulandığı taktirde bakımı ve geliştirilmesi kolay yazılım sistemleri oluşturmak mümkündür. En verimli hali test güdümlü yazılım ile uygulanır. Okumaya devam et