Author: Muhammet Esat BÜYÜKBULUT

  • igdkmdn64.sys

    DİKKAT: Bu tip işlemler tehlikeli olduğundan bilgisayarınızı tamamen bozma ve dosyalarınızı kaybetme riskiniz vardır. Bugün çalışırken birden bire mavi ekran aldım. Hata kodu şöyleydi: intel graphics kaynaklı bir hataymış ve çözümü için de DDU isimli bir araç kullanılıyormuş. Muhtemelen başka yolları da vardır fakat biraz tehlikeli olmasına rağmen ben bu yolu seçtim. DDU isimli araç…

  • SQLite – 2

    What is a Constraint  A constraint is a rule that’s applied to a column or set of columns in a database table with the goal of preserving the data integrity. Constraints enforce limits on the data type and the range of values that can be used within columns. If any action violates a constraint, that action is aborted. Constraint _Description_ NOT NULL…

  • SQLite – 1

    The SQLite library includes a simple command-line utility named sqlite3 (or sqlite3.exe on windows) that allows the user to manually enter and execute SQL commands against an SQLite database. Select statement The SELECT statement is used to query the database. The result of a SELECT is zero or more rows of data where each row has a fixed number…

  • Bézier Curves

    Bézier Curves

    Bir eğrinin parametrik olarak tanımlanması için  Pierre Bézier tarafından ~1960 yıllarda bulunmuştur. P0, P1, P2, … PN olmak üzere n adet kontrol noktası bulunur. n eğrinin derecesini temsil eder ( 1->linear; 2->quadratic; 3->cubic; …). Eğer iki kontrol noktamız varsa P0 ve P1; (Linear) P0 noktasından P1 noktasına giden bir noktanın ardında bıraktığı iz olarak düşünebilirsiniz.…

  • SQLite – 0

    SQLite features SQLite is a software library that provides a relational database management system. The “lite” in SQLite means lightweight nature regarding setup, database administration, and required resources. SQLite has the following notable features: Self-Contained SQLite is “stand-alone” or “self-contained” in the sense that it has very few dependencies. It runs on any operating system, even stripped-down bare-bones…

  • CPP 063 – Execution Policy

    std algoritmalarının çalışma şeklinin paralel, sequential veya vectorized olup olmadığını belirlemek için kullanıyoruz.

  • CPP 062 – packaged_task & async

    packaged_task bir callable objeyi paketleyip sonucunu daha sonra kulanabiliriz. Senkron ya da asekron olarak çalışabilir. Eğer aynı thread de ise sekron olarak çalışır: Farklı thread’de asekron olarak da çalıştırabiliriz: packaged_task şablonu: Async packaged_task ile aşağı yukarı aynı işi yapıyor ama daha high level diyebiliriz. Sekron ya da asekron çalışabilir: future objesi implicitly olarak thread join…

  • CPP 060 – Thread Synchronization

    Progress Bar Bir fetcher thread ve bir progress bar thread’i arasındaki sekronizasyonu sağlamak için mutex ve flaglar(data_ready ve complete) kullandık. Threadlerin yaptıklarını özetlemek gerekirse: Fetcher thread Progres bar thread İşler bittince completed flag ile programdan çıkış yapıyoruz. Gördüğünüz üzere bu yaklaşım bu işi yapmak için en iyi yaklaşım değil. Çünkü bir çok yerde lock unlock…

  • CPP 059 – Dead Lock & Live Lock

    Dead Lock A devam edebilmek için B ye, B de devam edebilmek için doğrudan ya da dolayı yoldan A ya ihtiyacı varsa bu bir dead lock oluyor. Live Lock Live lock da tıpkı deadlock gibidir ama halen işlemin devam ettiğine dair bir hayat belirtisi vardır:

  • CPP 058 – Working With Shared Data

    Critical Section Data race’in gerçekleşebileceği bölgeye critical section diyoruz. Yani kritik bölge, bir kaza/bir yanlışın çıkabileceği alan. Aşağıdaki kodda brute force bir çarpma işlemi yapıyoruz. 20 farklı thread aynı değişkeni 10’000’er defa ++(increment) ediyor. sonuç 200’000 olmalı. Fakat kritik bölgeye dikkat etmediğimizde yanlış sonuç elde ediyoruz: Bu koddaki kritik bölge: Mutex Mutual exclusive’in kısaltması. 4…

  • CPP 057 – Thread Giriş

    Thread ID sleep_for() belirtilen süre kadar thread i uyutur: Thread Object Thread RAII idiomunu implemente etmiştir ve sadece move edilebilir: Return ederken bizim yerimize compiler optimize ediyor: Exceptions Thread içinde handle edlimeli. If I have a C++11 program running two threads, and one of them throws an unhandled exception, what happens? Will the entire program…

  • CPP 056 – Concurency

    Concurency Nedir? Concurency(eşzamanlılık) aynı anda birden fazla görevin yerine getirilmesidir. Maillerinizi okurken, arka planda çalan müzik bunun bir örneğidir. Bilgisayarımızda aynı anda yüzlerce hatta binlerce ufak program/kod parçası aynı anda çalışıyor. Yeni nesil mimarilerin hepsi(?) çok çekirdekli ama eski tek çekirdekli bilgisayarlarda bile bizler farklı işleri aynı anda yapabiliyorduk. Bu durumda eşzamanlılık kavramı sadece farklı…

  • Save-Load Game

    Öncelikle kaydetmek istediğimiz özellikleri bir sınıf içinde topluyoruz. Bu sınıf USaveGame sınıfından miras almalı. Ayrıca default constructorımızı da yazdık: Daha sonra istediğimiz yerden LoadGameFromSlot, SaveGameToSlot ile save-load işlemini gerçekleştirebiliyoruz:

  • Kartlardan grid trim sheet oluşturmak

    Kartlardan grid trim sheet oluşturmak

    İskambil kartlarından bir trim/sprite sheet (artık nasıl adlandırmak daha uygun olur bilemiyorum) oluşturmak için gerekli python kodu: images isimli klasörden isim sırasına göre iskambil kağıdı resimlerini okuyup belirtilen satır/sütun sayısına göre bir karesel bir 4k texture içine diziyor. Kodun çoğunu chatgpt yazdı(cidden iyi iş çıkardı) bazı modifiyeler yaptım üzerinde. Kodu kullanabilmek için öncelikle pillow kütüphanesini…