Bu yazıyı hazırlarken 2021 için tam bir hedefler yazısı yazmadığımı farkettim ama 2020 yılı sonunda hazırladığım özet yazımda biraz ucundan dokunmuşum. Bu sene ise hem 2021 özetini hem de gelecek sene içerisinde hedeflerimi tek bir yazıda toplamaya karar verdim. 2021 bireysel olarak çok güzel bir sene oldu benim için. Hem kişisel hem de mesleki olarak kendimi geliştirdiğimi hissettiğim bir yıl geçirdim. Hala Ankara’dayım ve ULAK Haberleşme’de RAN Software Engineer olarak çalışmaya devam ediyorum. Mesleki olarak 2020 yılında biraz daha haberleşme sektörüne hazırlık olarak ilerlemiş olsam da 2021 içerisinde direkt olarak geliştirme işlerini üzerime almaya başladım. Sektöre hakim olanlar bilecektir, haberleşme sektörü biraz kendi içine kapanık ve bazı şeyleri anlaması kolay olmayan bir sektör. İlk dezavantajı aşırı derece kısaltma kelime içermesi…

Derleyiciler, yazdığımız yüksek seviyeli kodları bilgisayarların veya mikroişlemcilerin rahatça çalıştırabilmesi için makine kodlarına dönüştürmeye yarayan, bu dönüşüm işlemi esnasında da çeşitli optimizasyon işlemleri sayesinde sistemden maksimum verim elde etmeyi amaçlayan araçlardır. Arkaplanda çalışan sistemleri karışık olduğu için genelde es geçilir ancak derleyicilerin bize sağladığı optimizasyon seviyeleri kadar bizim de yapmamız gereken bazı optimizasyon işlemleri vardır. Bu yazı serisinde derleyicinin otomatik olarak yaptığı optimizasyonlardan ve geliştiricinin yapabileceği optimizasyonlardan bahsediyor olacağım. Geliştirici gözüyle bakıldığı zaman derleyiciler tüm işlemleri otomatik olarak yapıyor olarak görünür. Örneğin; GCC derleyicisinde derleme işlemi sırasında kullanabileceğiniz optimizasyon flag’leri (bazı kelimelerin direkt Türkçe çevirisinin anlamlı olmayacağını düşündüğüm için İngilizce karşılığını kullanmayı tercih ediyorum.) vardır. Onlar sayesinde kodunuzu hangi seviyede optimize etmek istediğinizi ayarlayabilirsiniz. Her zaman maksimum optimizasyon flag’ini kullanmak…

Yazdığımız kodlar içerisinde birçok uyarı ve hata ile (“warning” ve “error”) karşılaşırız. Kullandığımız derleyiciler bu uyarı ve hataları derleme sırasında bizim için ortaya çıkartır ve buna bağlı olarak düzeltilmesi gereken yerlerde bu düzenlemeleri yaparız. Birçok derleyici bunu kendi içerisinde yaparken harici olarak yapılma ihtiyacı olan durumlar da olmaktatır. Bu işleme statik analiz adı verilir. Statik analiz işlemini gerçekleştirmek için de birçok araç mevcuttur. Bu yazımda CppCheck aracı ile nasıl statik analiz yapabileceğimiz hakkında bilgi vermeye çalışacağım. Statik Analiz Statik analiz, kodu derlemeden (yani pre-compile) tespit edilebilecek hataları tespit ederek bunları düzeltmemize olanak tanır. Bu sayede oluşabilecek bug’ları erken dönemde tespit etmeye ve tanımlanmamış davranışları ve tehlikeli kod yapılarını (undefined behaviour ve dangerouscoding constructs) tespit etmeye odaklanır. Aşağıda kullanabileceğiniz bazı statik…

Her sene bitiminde bitirmiş olduğumuz yıl hakkında, sene başında ise önümüzdeki yıl içerisindeki beklentilerim ve planlarım hakkında bir yazı yazmaya çalışıyorum. Bu senenin başında da var olan gidişatla ilgili bir yazı yazmıştım. Biraz sallantılı başlayan bir yıl olması aslında gidişatını gösteriyormuş diyebiliriz. Yazımda da belirttiğim gibi senenin başında bana maddi getiriden başka bir şey kazandırmadığını düşündüğüm eski işimden ayrılıp yeni fırsatlar aramaya başlamıştım. Tam bu sırada hepimizi dize getiren korona virüs salgını patladı ve yaklaşık 4 ay işsiz kaldım. Bu süreçte yaptıklarımı da yine bir önceki yazımdan bulabilirsiniz. Mayıs ayından sonra duygusal olarak kötü birkaç ay geçirdim. Bu döneme paralel olarak temmuz ayında yeni bir işe başlamamın ardından artık hayatımı Ankara’ya taşıdım. Bir süre daha Ankara’da kalacağım gibi duruyor. 4…

DPDK ile ilgili hazırlamış olduğum bir sunum sırasında Türkçe içerik eksikliğini görerek, aldığım notları derlediğim bir içerik oluşturmak istedim. Benim de içerisine yeni dahil olduğum bir yapı olduğu için vereceğim bilgiler tecrübelerden daha çok araştırdığım yabancı kaynakların derlenmesi sonucu ortaya çıkmış oldu. Bazı terimlerin Türkçe karşılığı anlamsız kaldığı için ve bu alanla ilgilenen insanların halihazırda bu terimleri bildiğini varsaydığım için İngilizce olarak kullandım. Kısaca DPDK’nın tarihinden bahsederek başlamak istiyorum. Data Plane Development Kit yani DPDK, 17 Eylül 2010’da BSD (Berkeley Software Distribution) lisansı ile yayınlandı. 2013 Nisan’dan itibaren dpdk.org üzerinde tamamen bağımsız ve kendi topluluğu olan bir hal aldı. Mikroişlemci üreticileri ve mimari geliştiriciler tarafından da desteklenerek projenin büyümesi hızlandırıldı. Günümüzde ise Linux Foundation tarafından destekleniyor. DPDK’nın amaçladığı ana iş…

Birbirini hiç yalnız bırakmaması gereken iki kavram üzerine biraz konuşmak istiyorum. Öncelikle günümüzde bazı kelimelerin her yerde kullanılarak içinin boşaltılmış olmasından oldukça rahatsızım. Bunun siyasal, politik boyutundan bahsetmiyorum, en basitinden karşıdakine edilen hitap kelimeleri bile anlamsız hale gelmeye başladı. Ben bir insana, içimde beslemediğim bir duyguyu belli edecek kelimeler kullanmaktan oldukça kaçınan birisiyim. Yolda gördüğüm bir insana “Kardeşim bir bakar mısın?” gibi bir cümleyi çok dalgın bir anıma gelmemişse, kurmam. Çünkü orada yatan kardeş kelimesinin bambaşka bir anlamı vardır bende. Bir insana kolayca edilen “canım, aşkım, hayatım” kelimeleri bunların altını boşaltmaktan başka bir şey ifade etmemekte benim için. Kimisi için basit görünen bu duygu içeren kelimelere çok mu edebi yaklaşıyorum bilmiyorum ama böyle hitap edilmemesi gerektiğini düşünmekteyim. Özellikle kız arkadaşların…

Birim (Unit) testleri yazarken sadece kendi içerisinde statik olarak uygulanan algoritmalarla çalışmayız, hatta çoğu zaman bu şekilde çalışmayız. Onun yerine diğer objelerle sürekli etkileşimde olan, gerçek zamanlı (real time) olarak işlemler gerçekleştiren şekilde tasarımlar yaparız. Benzer sistem tasarımlarının testlerini yazarken de her zaman gerçek objeler üzerinde çalışamayız. İşte tam olarak burada karşımıza kurtarıcı niteliğinde bir kavram çıkıyor, Mocking. Mock kavramı anlamı itibarı ile taklit objeler oluşturmamıza izin vermektedir. Gerçek zamanlı testlerde karşılaşacağımız objelerin taklit edilen hallerini oluşturarak testimize dahil etmemize yarar. Bu yazıda üzerinde işlem gerçekleştireceğimiz Mock framework’ü ise GoogleMock (gMock) olacak. Yazı içerisindeki anlatımların bir çoğunu YouTube kanalımda anlattığım GoogleTest video serisi içerisinden de ulaşabilirsiniz (Henüz yayınlanmadı). Mock objeleri ile diğer diller üzerinde çalışırken sizin için işin bir kısmını…

Yazılımda test kavramı sadece kelimelerle aşina olduğum bir durumdu ancak daha öncesinde hiç üzerine araştırma yapmamış, hiç bir yerde kullanma ihtiyacı hissetmemiştim – ne salakmışım. Bir sistemi kafanda kurguluyorsun, kağıt üzerinde adım adım her şey çalıştırıyorsun, oturup kodunu yazıyorsun ama sonra canlıya çıkınca bir bakıyorsun patır patır dökülüyor. Bunun hepimizin öncesinde karşılaştığı bir problem olduğunu düşünüyorum. Kimse yoktur ki “Benim yazdığım kod tek seferde babalar gibi çalışır, kafamda oluşturduğum yapı Nikola Tesla’nın yansılarında oluşturduğu gibi kusursuz çalışır halde olur” diyebilsin. İşte bu problemleri, kodu yazdıktan sonra debug etme süresini, oluşabilecek ekstra senaryoları ve projenin ilerleyen süreçlerinde yapılacak ekleme çıkartmaların yazdığınız koda etkisini görebilmek için test yazmak çok büyük önem arz ediyor. Hele bir de gömülü sistemler gibi yazdığınız kodun çıktılarını…

Çok uzun zamandır bloguma ne kişisel ne de uğraştığım şeylerle ilgili içerik girmiyordum. Ancak artık bloguma biraz daha önem verip içerikler oluşturmaya karar verdim. Yeni içerikler için de başlangıç olarak hepimizin muzdarip olduğu konuyu kendi özelimde ele almak istedim. 2020 hepimiz için ‘mutluluk’ getirecek bir sene olarak başlamış gibi görünüyordu ama çok geçmeden foyası ortaya çıktı. Depremler, savaşlar, salgın hastalıklar derken herkes için hayat farklı bir hal almaya başladı. Bunun sosyolojik ve ekonomik etkileri içinde bulunduğumuz virüs salgınından kurtulduktan sonra hızlı bir şekilde ortaya çıkacaktır. Sosyologlar konu üzerine onlarca tez yazacaklardır, sosyal medya ekonomistleri ise kimsenin ciddiye alıp dinlemeyeceği yüzlerce methiyeler düzeceklerdir – millet haksız da sayılmaz bu dinlememe konusunda. Ben geçtiğimiz sene Haziran ayında mezun olduktan sonra Eskişehir’de bir…


Notice: compact(): Undefined variable: pagination in /home/herenkes/public_html/wp-content/themes/contentberg/loop.php on line 27

Notice: compact(): Undefined variable: pagination_type in /home/herenkes/public_html/wp-content/themes/contentberg/loop.php on line 27