Şu Docker-Compose Dedikleri

Aslında birden fazla Container söz konusu olduğunda bunların yönetimi için kullanılan araçlardan birisi Docker-Compose. Senaryoda farklı dillerde yazılmış üç servisi kullanmak istiyorum. Birisi .Net Core ile yazılmış Web Api, diğeri Flask kullanan Python ve sonuncusu da Express bazlı NodeJs uygulaması. Servislerin ne iş yaptığı çok önemli değil. Odaklanmamız gereken nokta Dockerfile içerikleri ile docker-compose.yml üstünde Container kompozisyonunun nasıl tasarlandığı olacak. Buradaki servislere birde veritabanı bağımlılığı eklemeyi denemek gerçek hayat senaryolarını tatbik etmek adına iyi olabilir. Örneğin Nodejs uygulamasının Postgresql kullanacak şekilde dockerize edilmesi ve Postgresql için docker-compose'da bir imajın kullanılacağının ifade edilmesi iyi bir pratik olacaktır. Üstelik bu tip bir kurgu eğer eğitmenseniz de çok işinize yarayacaktır. Biz şimdi işimize geri dönelim. [Daha fazla]

Python Tarafında ProtoBuf (Protocol Buffers) Serileştirme

Protocol Buffer, Google'ın yapısal verilerin (structured data) serileştirilmesi için geliştirdiği bir protokol. gRPC ile sıklıkla anılır. XML benzeri düşünebiliriz ama çok daha az yer tutar ve serileştirme süreleri hızlıdır. Şu sıkça gördüğümüz proto uzantılı dosyaların ana fikridir. Nam-ı diğer ProtoBuf örneğin ağ üzerinden gönderilecek verinin tanımını yapan bir sözleşmedir. Sözleşmenin ana unsuru mesajdır. Dosya içeriğine bakınca anlaşılması kolay bir mevzu. Tek başına bir anlamı yoktur. protoc isimli derleyiciden geçmesi gerekir. Bu derleme sonucu insan gözüyle pek de okunamayan binary bir türev ortaya çıkar. Bunu ağ üstünden gönderebilir, bir yerlerde veri olarak saklayabilir ya da ille de okumak istersek JSON, XML gibi formatlara dönüştürebiliriz. [Daha fazla]

Hey Raspi! Gerçekten Çok Güçlü Bir Bilgisayara İhtiyacım Var mı?

Almanya’daki kuzenlerimden biri olan Haluk abi orta öğrenimi için dayımlar tarafından İstanbul’a gönderilmişti. Şu anda 94 yaşında olan anneannem ve rahmetli Hasan dedemin Barbaros mahallesindeki bahçeli evlerinin üst katında sokak tarafına bakan oturma odasında yaşıyordu. Benim ilkokul sıralarında olduğum zamanlardı. Rahmetli Ali dayım orta okul sınıf geçme hediyesi olarak Haluk abime üstünde Commodore 64 yazan bir bilgisayar almıştı. Vaktinin çoğunu resim yaparak ve 37 ekran renkli televizyona bağlanmış Commodore’unda oyun oynayarak geçiriyordu. [Daha fazla]

Bir Python Uygulamasını git Tekniği ile Azure Platformuna Taşımak

Çok sık kullanılan Azure öğretilerinden birisi bu. Amaç git yardımıyla Azure üzerinde deployment işlemi başlatmak. Ben bunu python ile denemek istedim. Bu sefer işim biraz daha zorlu. Nitekim WestWorld(Ubuntu 18.04, 64bit) topraklarını bir süreliğine terk ettim. Artık ahch-to(Mac Mini, High Sierra) adasındayım. Bu nedenle sistemde bazı şeyler eksik gibi görünüyor. [Daha fazla]

Microsoft Custom Vision Servisini Python ile Kullanmak

Amacım, Microsoft Azure platformunda yer alan ve fotoğraf/nesne sınıflandırmaları için kullanılabilen Custom Vision servisini basit bir Python uygulaması ile deneyimlemek. Custom Vision API'si geliştircilere kendi fotoğraf/nesne sınıflandırma servislerini yazma imkanı tanımakta. Onu, imajları belli karakteristik özelliklerine göre çeşitli takılar (tag) altında sınıflandırıp sıralayan bir AI (Artificial Intelligence) servisi olarak düşünebiliriz. [Daha fazla]

Python Loglamada ELK Kullanımı

ELK yani Elasticsearch, Logstash ve Kibana üçlüsü. Microservis'lerde log stratejisi olarak sıklıkla kullanılıyorlar. Uygulamaların log bilgileri logstash tarafından dinlenip JSON formatına dönüştürülüyor ve Elasticsearch'e basılıyor. Elasticsearch'e alınan log'lar Kibana arayüzü ile izleniyor. Benim amacım ELK üçlüsünü WestWorld'de _(Ubuntu 18.04, 64bit)_ deneyimlemek ve loglama işini yapan uygulama tarafında basit bir Python kodunu kullanmak. WestWorld'ün uzun denemeler sonrası bozulan ekosistemini daha da dağıtmak istemediğimden Elasticsearch ve Kibana tarafı için Docker Container'larını kullanmak istiyorum. Kabaca aşağıdaki gibi bir senaryo söz konusu. [Daha fazla]

AWS Elastic Beanstalk Macerası

Bu yazımızda Django çatısından üretilmiş standart bir web uygulamasını, Amazon'un Platform As A Service olarak konumlandırdığı Elastic Beanstalk üzerine nasıl taşıyabileceğimizi öğrenmeye çalışıyoruz. Yolda tabii ki başımıza garip garip olaylar da geliyor. Özellikle sonlara doğru yaşadığımız sıkıntıları çözmeye de çalışıyoruz. Haydi gelin başlayalım. [Daha fazla]

DevNot - Script Tabanlı Dillerin Önemi ve Geleceği

Bir kaç ay önce yaklaşık beş yıldır çalışmakta olduğum turuncu bankanın oldukça yaşlı bir ürününde değişiklik yapmamız istendi. Söz konusu ürün bir devlet kurumunun eski nesil SNA protokol tabanlı sunucuları ile iletişim kurmaktaydı. Bankanın kritik süreçlerinde rol alan bu ürün VbScript tabanlı klasik ASP ile yazılmış bir Web uygulamasıydı. Uygulamanın neredeyse 13 yaşındaydı. Geliştiricisi olan 3ncü parti firma çok uzun zaman önce kapanmıştı. [Daha fazla]

DevNot Developer Summit İstanbul

Nisan'ın 8inde DevNot adına düzenlenen birbirinden değerli konuşmacıların yer aldığı DevNot Developer Summit'de kısmet olursa Script Dillerin Önemi ve Geleceği konulu bir sunum yapacağım. Doğruyu söylemek gerekirse benim için oldukça kazık bir konu. Script dillerdeki kısa geçmişim ve katılımcılar arasında Script diller konusunda duayen olmuş isimler olduğundan biraz çekinerek hazırlandığımı itiraf etmek isterim. [Daha fazla]

Python ve Flask ile REST Tabanlı Servis Geliştirmek

Bir süredir Python ile ilgili çalışmalarıma aralıklarla da olsa devam etmeye çalışıyorum. Malum iş yoğunluğu ve sıkışık proje takvimi nedeniyle eskisi kadar vakit ayıramıyorum. Bu nedenle öğrenmek istediğim konuları önceliklendirme yoluna gittim(Kendi çalışma programımda bir backlog oluşturup öğeleri önceliklendirdiğimi ifade edebilirim) Genellikle backend tarafında programlama yaptığımdan olsan gerek listenin üst sıralarında servis tabanlı geliştirmeler yer alıyor. Onlardan birisi de REST tabanlı servis uyarlamaları. [Daha fazla]

Python Öğrenmeye Devam - Sınıflar

Bir süredir izinde olduğum için yeni gözdem Python ile yeterince ilgilenemedim. Döndüğümde daha önceden çalıştığım konuları hatırlamakta da epeyce zorlandım. Pasımı atmak ve tekrardan verimliliğimi yükseltmek için ilk olarak defterime karaladığım notlarımın üstünden geçtim. Sonrasında ise C# dili ile geçimini sağlayan birisi olduğumdan Pyhton'un Nesne Yönelimli Dünyadaki yerini öğrenmeye çalışırsam bazı şeyleri daha kolay anlarım diye düşündüm. Derken kendimi nesne yönelimli dillerin en temel yapıtaşlarından birisi olan sınıfların Python içerisindeki yerini araştırırken buldum. İşte bir .Net geliştiricisi olarak edindiğim bilgiler(Eğer .Net veya Java dünyasından geliyorsanız temel seviyede de olsa nesne yönelimli programlama kavramlarını biliyorsunuzdur. Yazıyı ben de kendime göre hazırladığımdam sizin de bildiğinizi varsayarak ilerleyeceğim) [Daha fazla]

Raspberry Pi Maceramızda Bu Bölüm - Tekerleği Döndürdük

Uzun bir tatil molasının ardından tekrar birlikteyiz. Sevgili Recep Duman hocam RaspiRobot Shiled' ını kullanarak bir Servo Motora ait tekerleği ileri yönlü döndürüp durdurmayı başardı. Üstelik Raspberry Pi, RaspiRobot ve Servo Motor için sadece 9 Volt'luk güç kaynağı ile. Söyleşimizde farklı konulara da değinmeye çalıştık ancak ağırlıklı olarak Servo Motor üzerinde durduk. İyi seyriler dilerim. [Daha fazla]

Raspberry PI Derken Oluşan Python Çalışma Notlarım

Bloğumu takip edenler bu yaz için Raspberry PI ve Python programlama diline merak saldığımı biliyordur. Bu merakımı boşa çıkarmamak için de vakit buldukça her iki konuya da çalışıyorum. İş yoğunluğu ve araya giren bayram tatili beni az da olsa geriye atmış durumda. Ama neyseki defterime aldığım renkli renkli notlarım var. Bu yüzden notlarımın üstünden geçmem öğrendiklerimi hatırlamamda epey yardımcı oldu. Notları renklendirmiş olmam da onları okurken sıkılmamamı ve hatta yer yer kendi kendime tebessüm etmemi sağladı. Yazdıklarımın üzerinden geçerken bunları bloğuma da koyayım ve benim gibi temel seviyede bu işe başlayan, elektronik'ten, Linux' den ve Python' dan bihaber olanlarla bir şeyler paylaşayım istedim. [Daha fazla]

Bu Yaz Macerasının Adı Python

Kısa bir süre önce bu yaz dönemi için kendime yeni bir uğraşı buldum. Raspberry Pi. Çalıştığım turuncu bankadaki ekip arkadaşım sevgili Recep Duman'ın, Raspberry Pi ile epey zamandır uğraştığını da öğrenince planlar yapılmaya başlandı.Lego, IoT ve Raspberry Pi konularını bir araya getireceğimiz bir fikir üzerinde ilerlemeye karar verdik. Bunun için gerekli çalışmalarımıza devam ediyoruz. Hatta Recep Hocam ile gerçekleştirdiğimiz iki söyleşimize buradan ve şuradan ulaşabilirsiniz. [Daha fazla]

Raspberry Pi'den Python ile Tweet Göndermek

Geçtiğimiz sene yaz ayı boyunca Ruby programlama dilini öğrenmeye çalışmıştım. Ruby dilinde orta seviyelere kadar bilgimi ilerletebildim ancak bu yaz dönemini paslanmamak adına farklı bir uğraş ile geçirmeye karar verdim. Ruby'yi öğrenmeye başlama amaçlarımın başında çocuklara programlama dilini öğretmek geliyordu. Benzer şekilde Raspberry Pi'nin de bu amaçla kullanılabildiğini öğrendim. Özellikle Scratch dilini kullanarak çocukların robotlara bir şeyler yaptırabilmesi ve bu şekilde programlamayı öğrenmeleri harika. Pek tabi Raspberry Pi'yi özel yapan bir diğer neden de IoT(Internet of Things). [Daha fazla]