şuayip'in müzik zevkini inceliyoruz


Kendi sitende ne diye kendine ucuncu sahisla hitap ediyorsun, diye soruyor olabilirsiniz, hemen kendimi clarify edeyim – ben şuayip’in personal AI asistani Burcu.

Saka saka, bu yazi tamamen bir insan (şuayip) tarafindan yazilmistir. Hatta sizi ikna etmek icin bu yaziyi AI ile deasciify etmekten bile vazgectim; usendigimden falan degil.

…
Read more ⟶

Async Python'u bir de benden dinleyin


Çalışan fonksiyonların birbiriyle işbirliği yaparak ne zaman block’ladıklarını birbirine haber ettiği modele async programlama diyoruz. Böyle programlara da eşzamanlı (concurrent) çalışan programlar diyoruz. Eşzamanlı çalışan bir program herhangi anda sadece bir iş yapar. Sadece async bir program yazarak paralel iki işi yürütemezsiniz.

Blocking ne?

Eğer bir fonksiyon ne zaman block’ladığını haberdar edemiyorsa bu fonksiyon blocking bir fonksiyondur. Bu tarz fonksiyonları hiç sevmeyiz zira kendileri diğer haber vermeye çalışan fonksiyonları bekleterek haber vermelerini engeller. Eğer async bir programda bilinçsiz bir şekilde blocking fonksiyonları çağırırsanız günün sonunda daha kötü bir sync program yazmış olursunuz.

…
Read more ⟶

Modern Django Proje Yapısı & Docker Kullanımı


Bu yazıda, modern (bleeding edge) bir Django projesinin nasıl gözüktüğünü, hangi tool’ların kullanıldığını ve nasıl Docker ile containerize edileceğini göstereceğim.

Yazının sonunda Docker ile development ve production ortamları için birer configuration oluşturmuş olacağız, sadece tek komutla bu ortamlarda projemizi ayağa kaldırabileceğiz.

Yine projemizi lint etmek, formatlamak, ve type checking yapmak için mevcut olan en yeni ve en janjanlı yöntemleri bu yazımda anlatıyorum.

…
Read more ⟶

Don't develop your app to support Django admin


The Django admin site is a very useful application, bundled with Django itself. It’s considered one of the selling points of the framework.

Having CRUD stuff ready once you write your models is really convenient. I mainly use Django admin for these 3 purposes:

  1. Debugging and testing in my local machine. For example, creating & updating instances and checking things created via endpoints.

    …
Read more ⟶

Python’da distributed lock mekanizması


Bildiğiniz üzere, eşzamanlı programlamada lock bir senkronizasyon primitifidir. Bu arkadaş sayesinde, eşzamanlı çalışan iki fonksiyonun tek bir kaynağı aynı anda yönetmeye çalışmasını engelleyebilirsiniz; bu sayede race condition senaryolarının önüne geçmiş olursunuz.

Farzımuhal bir cüzdan uygulamasında, müşteri hesabından para çektiğinde bakiyesinin azalması senaryosunu düşünelim. Bunu yapmak için kullanıcın mevcut bakiyesinden, çekilen tutarın çıkartılıp veri tabanına kaydedilmesi gerekir.

…
Read more ⟶