Mustafa Yemural

Mustafa Yemural

Parallel and High Performance Computing İnceleme

Günümüzde artık paralel uygulamalar yazmak veya seri kodları paralel kodlara dönüştürmek vazgeçilmez hale gelmiştir. CPU ve GPU teknolojilerinde yaşanan gelişmeler buna ön ayak olmuştur. Ayrıca Moore Yasası'ndan kaynaklı yaşanacak kısıtlamalar algoritmik anlamda paralel hesaplamayı çok daha cazip hale getirmiştir. Bu kitap aslında Yüksek Performanslı Hesaplama (High Performans Computing, HPC) alanındaki temel bilgilere odaklanmaktadır. Örnekler öncelikli olarak C ve C++ dillerinde verilmekte, bazı yerlerde ise Fortran kullanılmaktadır.

Learning Vulkan İnceleme

Vulkan, 3D grafik işleme ve hesaplama için kullanılan düşük seviyeli çapraz platform bir grafik API ve standardıdır. Aslında o, OpenGL'in eksikliklerini kapatan ve kullanıcıya GPU üzerinde daha fazla kontrol sağlayan bir API'dır. Günümüzün belki de en popüler grafik API'ı olduğunu söyleyebiliriz. Bu kitap, halihazırda C++ bilen ve grafik programlama ile az da olsa ilgilenmiş kişiler için bir Vulkan'a başlangıç kitabıdır. Kitaptaki tüm bölümler aslında tek bir örneği tamamlamak üzerine yazılmıştır: Ekrana bir üçgen çizmek.

Modern C++ Programming Cookbook İnceleme

C++ dili gün geçtikçe gelişmekte ve 2011 yılından beri her 3 yılda bir yeni standartları yayımlanmaktadır. 2011 yılı ile yayımlanan C++11 standardı ile artık dil "Modern C++" olarak adlandırılmaktadır. Elbette günümüze kadar dile çok fazla yenilik eklenmiş ve çeşitli değişiklikler yapılmıştır. Ancak bu kadar fazla yeniliği takip etmek her zaman kolay olmayabilir. Bu kitap aslında günümüzdeki C++23 standardına kadar olan önemli modern C++ özelliklerini toparlayıp çeşitli tarifler şeklinde bize sunmaktadır. 140'ın üzerinde tarif içeren bu kitapta, her bir tarifin açıklaması, kod kullanım örnekleri ve tarifte anlatılan özelliklerin nasıl çalıştığı tek tek anlatılmaktadır.

Advanced C and C++ Compiling İnceleme

C veya C++ dili ile yazılmış bir projede çalışan geliştiricilerin belki de karşılarına en çok çıkan kavram kütüphane (library) kavramıdır. Hem projenin içerisinde hem de projenin dışından (üçüncü parti) kullanılan bu kütüphanelerin bu projelere nasıl entegre edildiği, türlerinin ne olduğu (statik veya dinamik), kodlarda nasıl kullanıldığı, proje ile beraber nasıl dağıtıldığı gibi konular geliştiriciler için önem arz etmektedir. Bu kitap aslında tamamen bu gibi konuların üzerine yoğunlaşmakta ve statik kütüphane, dinamik kütüphane, derleme aşaması işlemleri, bağlama aşaması işlemleri, yükleme aşaması işlemleri gibi her projede karşımıza çıkabilecek kavramlar üzerinde durmaktadır.

Learning Go İnceleme

2007 yılında Google tarafından tasarlanan Go dili, son yıllarda sunucu ve bulut bazlı uygulamaların da artışı ile oldukça popüler bir programlama dili haline gelmiştir. C ve C++ dilleri gibi derlemeye dayalı bir programlama dili olan Go dili ile Web sunucu yazılımları (back-end), Web API geliştirme, gRPC uygulamaları, komut satırı programları, Kubernetes kullanan yazılımlar gibi pek çok alanda uygulama geliştirme imkanınız bulunmaktadır. Bu kitap da giderek popülerleşen bu dile yeni başlayan kişiler için oldukça güçlü bir başlangıç bilgisi sağlamak amacıyla yazılmıştır. Kitapta sadece dilin söz dizimi özellikleri değil, ayrıca Go dili derleyicisi ile gelen çeşitli araçların kullanımı, Go modülerinin yönetimi, Go standart kütüphanesi, Go ile test yazımı gibi konular da ele alınmaktadır.

Jenkins Fundamentals İnceleme

Jenkins, projelerde CI/CD işlerinde kullanılan en popüler araçlardan biridir. Bu kısa kitap, Jenkins'in temel arayüzünü ve temel kavramlarını örneklerle açıklamaktadır. Kitapta yer alan bilgilerin bazıları eski kalmış olabilir. Çünkü Jenkins arayüzü sürekli olarak güncellenmektedir. Ancak bu kitapta anlatılan versiyon ile güncel versiyon arasındaki çalışma mantığı genel hatları ile aynı olduğu için, Jenkins'e ve CI/CD tarafına yeni başlamak isteyen kişiler için faydalı bir kitaptır.

Learn OpenGL – Graphics Programming İnceleme

Bu kitap, Joey de Vries isimli Hollandalı grafik programcısı tarafından yazılan ve günümüzde artık yeni içerik eklenmeyen, dünyanın belki de en kapsamlı ücretsiz modern OpenGL derslerinin yer aldığı Learn OpenGL web sitesinin basılı bir versiyonudur. Web sitesinde yer alan tüm bilgiler bu kitapda da yer almaktadır. O nedenle incelemeyi yaparken kitaptan ziyade bir nevi web sitesinin incelemesini yapıyor gibi olacağım.

C++ Best Practices İnceleme

Özellikle YouTube'daki C++ Weekly With Jason Turner isimli kanalına attığı haftalık C++ videolarıyla bilinen Jason Turner'ın Leanpub'da yayımladığı ve sürekli güncellediği bu kitabında, haftalık video serilerinde ve Web sayfasında yıllardır C++ ile ilgili bahsettiği konuların bir özeti yer almaktadır. Halihazırda C++ bilenler için tavsiye öğelerini içeren bu kitap, C++20 de dahil olmak üzere güncel standartları baz almaktadır. Bu kitapta yer alan bilgiler ile C++'ın pratik kullanımı konusunda kendinizi daha da geliştirmeniz amaçlanmaktadır.

C++ Move Semantics – The Complete Guide İnceleme

Bu kitapta C++11 ile dile eklenen taşıma semantiği ve onun uygulamaları geniş bir şekilde anlatılmaktadır. İlk parçada taşıma semantiği ile ilgili temel kavramlar, taşıma semantiğinin faydaları, taşınan nesnelerin durumları, "noexcept" ile taşıma semantiğinin ilişkisi, değer kategorileri gibi konular örneklerle ele alınmaktadır. İkinci parçada ise taşıma semantiğinin şablonlar ile kullanımı ve uygulamaları ele alınmaktadır. Son parçada C++ Standart Kütüphanesi ile taşıma semantiği ilişkisi incelenmektedir.

Learning Domain-Driven Design İnceleme

Yazılım oluşturmak her zamankinden daha zor. Bir geliştirici olarak yalnızca sürekli değişen teknolojik trendleri takip etmek zorunda değilsiniz, aynı zamanda yazılımın arkasındaki iş alanlarını da anlamanız gerekiyor. Bu pratik kitap size iş alanlarını analiz etmek, iş stratejisini anlamak ve en önemlisi yazılım tasarımını iş ihtiyaçlarıyla uyumlu hale getirmek için bir dizi temel model, ilke ve uygulama sağlar. Yazar Vlad Khononov bu kitapta, bu uygulamaların iş mantığının sağlam bir şekilde uygulanmasına nasıl sağladığını ve geleceğe yönelik yazılım tasarımı ve mimarisine nasıl yardımcı olduğunu size göstermektedir.