Python'da Kurulması Kolay Uygulama Yapmak

Eskiden projelerde do.sh adında bir shell scripti kullanırdık. Makefile ile benzer işlevi görüyordu; ancak bu scriptte yeni fonksiyonlar yazmak, env değişkenlerini kullanmak gibi ekstra şeyler de yapıyorduk. Bütün fikir, README.md dosyasında neyi hangi komutlarla yapacağımızı belirtmek yerine, o komutları sırayla çalıştıran, komutların çalışması için gerekli kurulumları otomatik yapan veya sistem gereksinimlerini kontrol eden, çalıştırabilmek için sadece Bash’e ihtiyaç duyan bir script yazmaktı. Sonra ben bunu DOSH adında Python projesine çevirdim. Altyapı olarak hazır, ihtiyaç oldukça geliştirmeye, yeni özellikler eklemeye devam ediyorum. Bash yerine Lua syntax’ini kullanarak benzer scriptler hazırlayabiliyoruz. Fakat DOSH ile birlikte birkaç yeni problem ortaya çıktı: ...

25 Ekim 2025 · 7 dk

Işın İzlemeyi GPU Sunucusunda Çalıştırmak

Birkaç yıl önce ışın izlemeyi daha iyi anlayabilmek için Ray Tracing in One Weekend kitabını okudum. Orijinal kod örnekleri C++ ve ben okudukça Python’a çevirip yazıyordum. Evet, korkunç bir fikir olduğunu baştan biliyordum; ama merak. Python’un performans açısından yetersizliğini en iyi gözlemleyebileceğiniz yöntemlerden biri, ışın izleme algoritmasını, genişliği 1000 pixel olan resim üreterek test etmektir. Fakat 300 pixel bile epey zaman alıyor. Dolayısıyla ya interoperability, ya multiprocessing, ya da GPU kullanımı gibi alternatif çözümlere başvuruyorsunuz. Bu da ışın izlemeyi öğrenirken beraberinde çözmem gereken eğlenceli ve ekstra bir iş olarak karşıma çıktı. ...

10 Ekim 2025 · 13 dk

Python 3.14 Yayımlandı, 3.9'u Bırakma Zamanı Geldi

Python 3.14 ile gelen yeniliklere hızlıca göz attım. Aşağıdaki kodları yerelinizde denemek için uv yükleyin ve REPL’i aşağıdaki komutla çalıştırın: uv python upgrade 3.14 uvx [email protected] PEP 750: Template Strings Template stringleri (kısaca t-strings), hazırda var olan f-strings’teki önemli bir eksikliği gidermek için sunulmuş bir öneriydi ve 3.14 ile birlikte artık kullanıma hazır. Önce problemi göstereyim: >>> name = "Gökmen" >>> f_hello = f"Hello, {name}" >>> t_hello = t"Hello, {name}" >>> type(f_hello) <class 'str'> >>> type(t_hello) <class 'string.templatelib.Template'> f_hello tipi str olduğu için, artık içinde değişkenler neydi, hangi kısımlar statikti anlamak için ekstra kod yazmak gerekiyordu. ama tip Template olunca bu bilgilerin hepsine erişim mümkün: ...

8 Ekim 2025 · 4 dk