Implementing the Simulation with Pygame
Welcome to the 4th post in the “Simulating Shortest Path in a Binary Matrix using Pygame” series! So far, we’ve explored the problem, implemented BFS, and designed a multi-stage simulation. Now, it’s time to bring it all to life! In this post, we’ll dive into the Pygame implementation and create an interactive visualization of the algorithm. You’ll see walls, paths, and visited nodes animate on screen, watch BFS explore the grid step by step, and even handle success or failure scenarios. Whether you’re here for the algorithms, the visuals, or just the fun of coding, this post will turn our simulation into a reality. Let’s get started!
Designing a Multi-Stage Simulation with Pygame
Building a simple shortest path simulation is easy, but where’s the fun in that? In this post, I explore the design of a multi-stage simulation using Pygame, where users interact with different states from setup to visualization and results. While adding complexity isn’t strictly necessary, it provides a great opportunity to learn core game development concepts like game loops, frame rate independence, and scene management. This post outlines the structure and expectations of the simulation before diving into the actual implementation.
Solving Shortest Path in a Binary Matrix
Hey all! This is the second post in the “Simulating Shortest Path in a Binary Matrix using Pygame” series. In this post, we will choose an algorithm and explain why we selected it as our preferred approach for this problem. We’ll also describe a few alternative algorithms commonly used for similar types of problems. Then, we’ll analyze the time and space complexity of the algorithm using Big-O notation. Finally, we will implement the algorithm in Python.
Introduction: Shortest Path in a Binary Matrix Problem
Hello! This is the first post of a new series I am starting about “Simulating Shortest Path in a Binary Matrix using Pygame”. In this series, I’ll walk through how I approached solving the “1091. Shortest Path in Binary Matrix” problem from LeetCode. This problem was not only an interesting coding challenge but also something I encountered during a job interview. After solving the problem, I also want to implement a visual simulation code that demonstrates how the algorithm works. I am not expert in simulating things and building visual software. I will use this challenge to learn how to use Pygame and how to simulate algorithms.
Tekrar Merhaba
Uzun bir aradan sonra, tekrar merhaba! Bu yazıda merak edenlere hayatımda bu süre içerisinde olup bitenleri kısaca özetliyor ve blogda her an meydana gelebilecek olası bir format değişikliğinden önce sizleri uyarıyorum.
Unit Test 05: Test Edilebilir Yazılım Nasıl Geliştirilir?
“Unit Test” yazı dizisinin bir önceki yazısında kaliteli unit test nasıl yazılır konusunu incelemiştik. Bu yazıda da test edilebilir yazılımlar nasıl tasarlanır sorusuna cevap arayacağız.
Unit Test 04: Kaliteli Unit Test Nasıl Yazılır?
“Unit Test” yazı dizisinin bir önceki yazısında neden unit test yazarız sorusuna cevaplar arayıp unit testlerin faydalarına değinmiştik. İkna olduysak artık test yazmaya başlayabiliriz. Peki unit test nasıl yazılmalı? Unit test yazarken nelere dikkat etmeliyiz? Unit testlerimizin kaliteli, faydalı ve amaca yönelik olması için takip etmemiz gereken kurallar nelerdir? Bu yazıda da konunun bu boyutunu ele alıyor olacağız.
Unit Test 03: Neden Unit Test Yazarız?
“Unit Test” yazı dizisinin bir önceki yazısında unit test ve diğer test çeşitlerini birbirinden ayıran temel farkları incelemiştik. Bu yazıda neden unit test yazmalıyız sorusuna cevap arayacağız. Bu soruya bulduğumuz cevaplar bize aslında unit test yazmanın faydalarını anlatıyor olacak.
Unit Test 02: Unit Test'in Diğer Test Çeşitlerinden Farkları Nedir?
“Unit Test” yazı dizisinin bir önceki yazısında unit test nedir kısaca onu incelemiştik. Şimdi diğer bazı test çeşitleri nelerdir ve unit testleri diğer test çeşitlerinden ayıran temel özellikler nelerdir bunları inceleyeceğiz.
Unit Test 01: Unit Test Nedir?
Yazılımcılar ikiye ayrılır. Unit test yazanlar ve unit test yazmayanlar. Bazen vakit yok deriz, bazen zor gelir, bazen proje/kod test yazmaya uygun değil deriz. Unit test yazmak istemediğimizde bu saydıklarım gibi çok fazla miktarda bahaneler üretebiliriz ve üretebileceğimiz bahanelerin de hemen hemen hepsini daha önce başkalarından da duymuşuzdur. Bu yazı dizisinde unit test konusu ile ilgili birçok soruya cevaplar arayarak kaliteli yazılım geliştirme basamaklarından birkaç tanesini hep birlikte tırmanmaya çalışacağız.
Gradle: Spring Boot & Angular Uygulamalarını Birlikte Build Edelim
Yeni bir projeye başlamanın en sıkıcı maddelerinden birisi de projeyi oluşturup her projede kullandığımız basmakalıp (boilerplate) kodları yazmaktır. Build aracını (maven, gradle, vs) seçmek, bağımlılıkları build aracına eklemek, kullanılan frameworklerin (spring, angular, vs) konfigürasyonlarının yapılması gibi her projede tekrar tekrar yaptığımız işler vardır ve bir kişi o işi yapıp projeyi repository’ye atmazsa ekibin geri kalanı projede yazılım geliştirmeye başlayamaz. Genellikle bu işlem varolan bir projeyi kopyalayıp içinde yeni projeye lazım olmayan ne var ne yok silmek şeklinde yapılsa da bazen yeni bir proje yapısını gerektiren durumlar oluşabilir. 2018 yılında backend için Spring Boot ve frontend için Angular framework’lerini kullanmaya karar verdiğimizde ekip için bu yeni bir proje yapısıydı ve biraz araştırıp bu iki arkadaşı bir arada kullanmanın proje için en uygun yolunu bulmam gerekmişti. O günden beri ekip olarak birçok projede kullandığımız bu proje yapısını sıfırdan bir proje oluşturarak anlatmaya çalışacağım.
Dağıtık Uygulamada Büyük Veri Okumak
2020 senesi içerisinde Inomera‘da Telekom sektörü için geliştirdiğimiz devasa bir projeyi başarıyla canlıya aldık. Oldukça güncel teknolojiler kullandığımız ve mikroservis mimarisi ile geliştirdiğimiz bu sistem Kubernetes ortamı üzerinde çalışmakta. Bu yazıda bu sistemde yaklaşık 22 milyon satır kullanıcı verisini veritabanından okuyup dağıtık bir cache Map’ine dolduran küçük bir mikroserviste uyguladığımız dağıtık veri okuma yöntemini anlatmaya çalışacağım.