Gömülü Sistemler Açısından C++ ve Rust Üzerine Gözlemler

Son yıllarda yazılım sektöründe en çok konuşulan konulardan biri Rust programlama dilinin bellek güvenliği (memory safety) vaadiyle C ve C++’ın yerini alıp alamayacağıdır. Özellikle Linux çekirdeğine Rust desteğinin girmesiyle bu tartışmalar gömülü yazılım alanına da sıçradı. Yıllardır C++ ile gömülü Linux (Orange Pi, Raspberry Pi) ve mikrodenetleyiciler (ESP32, STM32) üzerinde çalışan bir mühendis olarak, Rust […]

Modern CMake Yapısına Geçiş Deneyimim ve Proje Mimarisi

C++ dünyasında derleme sistemleri uzun süre geliştiricilerin en çok zorlandığı ve kaçındığı konuların başında geldi. Yıllar önce yazılmış CMake projelerine baktığınızda includedirectories(), linkdirectories() ve set(CMAKECXXFLAGS …) gibi küresel değişkenlerle doldurulmuş, projenin bir yerindeki değişikliğin başka bir hedefi beklenmedik şekilde bozduğu kırılgan yapılara rastlarsınız. Bu yazıda; projelerimde eski CMake alışkanlıklarını bırakıp modern hedef (Target) odaklı CMake […]

C++ Projelerinde Bellek Sızıntısı Analizi ve Valgrind Deneyimlerim

Kısa süreli çalışan komut satırı araçlarında birkaç baytlık bellek kaçakları işletim sistemi süreç kapandığında temizlediği için genellikle fark edilmez. Ancak bir ağ servisi, kripto ticaret botu veya gömülü donanım üzerinde 7/24 çalışacak bir C++ uygulaması geliştiriyorsanız, döngü başına sızan tek bir bayt bile günler sonra sistemin OOM (Out Of Memory) mekanizması tarafından öldürülmesine neden olur. […]

ESP32 ve MQTT ile Yerel Ortam İzleme Sistemi Tasarımı

Piyasadaki akıllı ev sensörlerinin büyük çoğunluğu üreticinin uzak bulut sunucularına bağlanarak çalışır. Bu durum internet kesintilerinde veri kaybına, veri gizliliği endişelerine ve üreticinin sunucuları kapattığında cihazın işlevsiz kalmasına yol açar. Kendi yaşam alanımda sıcaklık, nem ve hava kalitesi gibi verileri takip etmek için tamamen yerel ağda (LAN) çalışan, dış internete bağımlı olmayan bir mimari kurmayı […]

Orange Pi Zero 2 ile Düşük Güç Tüketen Ev Sunucusu Kurulumu

Ev ağında sürekli açık kalması gereken hafif servisleri (DNS engelleyici, MQTT aracısı, küçük veri tabanları veya arka plan otomasyonları) çalıştırmak için standart bir masaüstü bilgisayarı ya da eski bir dizüstü bilgisayarı açık bırakmak hem gereksiz elektrik tüketimine hem de gürültüye neden olur. Bu ihtiyacı karşılamak için tek kart bilgisayarlar (SBC) oldukça cazip bir alternatiftir. Piyasadaki […]

C++ ile Kripto Botu Geliştirme Sürecinden Notlar ve Çıkarımlar

Finansal piyasalarda algoritmik ticaret dendiğinde akla ilk gelen ekosistem genellikle zengin kütüphane desteği (Pandas, NumPy, Backtrader) ve hızlı prototipleme imkanı nedeniyle Python olur. Ancak ben bu projede bilinçli olarak C++ tercih ettim ve sistemi Orange Pi gibi kısıtlı kaynaklara sahip bir gömülü Linux kartı üzerinde çalıştırdım. Bu yazıda; projenin geliştirme sürecinden çıkardığım mimari dersleri, nerede […]

C++ ile Kripto Ticaret Botu Geliştirmek / Bölüm 4: Alım-Satım Stratejileri ve Karar Mekanizması

Serinin üçüncü bölümünde, statik kütüphane bağımlılıklarını dinamik CMake modülleri haline getirmiş, kurulumu bir kabuk betiği (install.sh) ile sadeleştirmiş ve sistemi Orange Pi Zero 2 üzerinde ayağa kaldırmıştık. Ancak o yazının sonunda belirttiğim gibi, işin en can alıcı ve belirsiz tarafı henüz ortada yoktu: Alış-satış karar mekanizması. Bir ticaret botu yazarken en sık düşülen tuzak, doğrudan […]

C++ ile Kripto Ticaret Botu Geliştirmek / Bölüm 3

Projeyi son hız geliştirmeye devam ederken pre-release(ön sürümü) aktif olarak denemeye başladığımı söyleyebilirim. Aynı zamanda geliştirme süreci benim için epey öğretici geçiyor. Bu süreç içerisindeki öğretiler projeyi ilk planladığım şekilden daha farklı rotalara doğru sürüklemeye başladı. Geçen yazıda da bahsettiğim proje bağımlılıklarını(kütüphaneleri) projeye statik olarak eklemiş ve projeyi beklediğimden biraz daha fazla hantallaştırmıştım. Daha sonradan […]

C++ ile Kripto Ticaret Botu Geliştirmek / Bölüm 2

Bir önceki yazıda geliştirecek olduğum projenin amacından ve detaylarından bahsetmiştim. Bu bölümde oluşturmuş olduğumuz CMake projemize gerekli kütüphaneleri include ederek başladım. Kullanmış olduğum başlıca kütüphaneler, Boost dışındaki tüm kütüphaneleri projeye static olarak dahil ettim. Yakın zamanda Boost bağımlılığından kurtulmayı ve static bir websocket kütüphanesi eklemeyi planlıyorum. Şimdilik Beast ile gayet güzel çalışıyoruz. Kütüphaneleri dahil ettikten […]

C++ ile Kripto Ticaret Botu Geliştirmek / Bölüm 1

Son zamanlarda herkesin konuştuğu, yatırım yaptığı, kazanç sağladığı veya tüm birikimlerini kaybettiği kripto paralar aslında sürekli dalgalı bir seyir izlediği için insanların bu kadar çok ilgisini çekiyor. Bu dalgaları doğru tahmin etmek ya da şansına da olsa alt ve üst noktalarda al-sat yapabilmek size oldukça iyi kazançlar sağlayabilir. Ama burada biraz şans faktörü gerekebilir ve […]