All Posts

Building Docdex: A Local-First Structural Index for LLM Coding Workflows

Building Docdex: A Local-First Structural Index for LLM Coding Workflows I use LLMs every day for software development. They’ve become part of my thinking process — refactoring, architecture validation, API design, debugging. They’re incredibly powerful. But they’re stateless. And that statelessness costs tokens. A large portion of model usage isn’t spent solving the actual problem. It’s spent rediscovering the repository — re-reading files, inferring structure, guessing dependencies, reconstructing context. Every session starts from scratch.

CI CD for Game Development

CI/CD for Game Development At present, the field of Game CI/CD is in its nascent stages, and there are numerous issues that need resolution. Our development process is complex, necessitating a robust procedure and deployment structure. This approach aims to resolve several challenges: Developing collaboratively as a team. Automating server builds and deployments. Managing multiple environments such as development, staging, and production. During my search for game CI solutions, I discovered Game CI, an excellent resource that typically works out of the box without customization. However, it did not fully meet our needs. This blog post outlines how I addressed the challenges encountered during our setup.

Fortran Lessons

What is this article about? I recently find out my fortran lessons published on students.edu.tr from 2002. It took me back in time and realized how much I loved programming. Wanted to re-publish it after 21 years. You can see the original from the wayback machine https://web.archive.org/web/20020806134915/http://www.students.itu.edu.tr/~dagb/fortran.htm. Here it is: ##fortran90 Fortran dili 1955 te ilk kez kullanılmaya başlanmıştır. Daha sonra birçok versiyonu kullanılan bu dil son olarak F95 olarak karşımıza çıkmıştır. Biz bu sitede F90 dan bahsedeceğiz. Bu derslere başlamadan önce eğer bir yazılım dili hakkında daha önce hiç eğitim almadıysanız ana programcılık bölümünü ziyaret etmenizi tavsiye ediyoruz.

Create Your Own Backend API With PHP Part 7

Entities and permissions The whole point of this framework is to make it easy to create entities and write custom modules easily. So we can create an entity with a few lines of code, we should consider the framework successful. Let’s create an entity for Blog Posts as an example. Create a folder under the modules directory: cd modules mkdir blog Now create blog.php and entity.fields.json files under the blog directory.

Create Your Own Backend API With PHP Part 6

Authentication and Authorization We use The PHP League’s Oauth 2.0 (https://oauth2.thephpleague.com/) server for the authentication. First of all we need to add our own module named oauth under the module directory and install the package via composer composer require league/oauth2-server If you look at our router, you will see that an authentication request is separately considered, unlike the routing.json file scan for each module to find the acting module. Therefore the endpoints that we will create in oauth module’s routing.json file will pass to the oauth module even though the user is not authenticated.

Create Your Own Backend API With PHP Part 5

Entities Entities are crucial parts of backend APIs. A developer should be able to easily create an entity with a configuration file. An example can be as follows: entity.fields.json { "fields": [ { "name": "name", "type": "string", "options" : { "length": 255, "notNull": false } }, { "name": "surname", "type": "string", "options" : { "length": 255, "notNull": false } }, { "name": "password", "type": "string", "options" : { "length": 255, "notNull": false } }, { "name": "email", "type": "string", "options": { "unique": true } }, { "name": "created_at", "type": "integer" }, { "name": "updated_at", "type": "integer" }, { "name": "active", "type": "boolean" } ] } After adding this to a custom module, the system should recognize this as an entity and automatically behave as one. The advantage of it is to create CRUD endpoints out of the box. The above example is for the user entity. Even though we don’t add anything in the routing.json config file, the system creates the POST, PUT, GET and DELETE endpoints with /user and /user/{id}, and also handles the permissions automatically.

Create Your Own Backend API With PHP Part 4

Database connection There should be only a single db connection each time there is a request. This is why we load the global environmental variables at the beginning of the script, use the db credentials to connect to the database only a single time. If you visit global.php you will see $global_connection = \Doctrine\DBAL\DriverManager::getConnection($connectionParams); This connection variable later used in the database.php under modules, public function __construct(){ global $global_connection; $this->connection = $global_connection; } Database object later is called on every time the system object is called. On system.php:

Create Your Own Backend API With PHP Part 3

Routing We have decided to use this framework for 2 purposes, first for terminal usage, second is to generate endpoints for REST. Terminal usage Sometimes all I need is to run a piece of code to do a simple job for my daily usage. For example I want to access a remote blog daily, read it, check for certain phrases and store the result (whatever result I want) into the database. I will run this on the server, and won’t even bother to create a web service for it. If my router understands where the request is coming from, then I can bypass all the authentication/authorization work and focus on the job itself.

Create Your Own Backend API With PHP Part 2

Main structure and the technology As I discussed in the previous post, one of the most important parts is to keep the syntax as simple as possible for a newbie to be able to jump on right away. We also should avoid using any sort of fancy tools which would basically complicate the development process. We also should use most popular tools which have proved themselves and supported by a strong community.

Create Your Own Backend API With PHP Part 1

Motivation In software development, most of the time what you need is a small piece of code to run. If you are working with a framework, it becomes very heavy to do simple tasks in shorter times. That’s why I decided to write my own framework for my daily tasks. To write or to not to write There are hundreds of frameworks out there, of course it is very unnecessary to write your own framework! Well, this almost true, except when it comes to start working on your custom product. If you want to write a crawler, a trading simulator, a repetitive task handler, it’s best to work on a very lightweight framework so that you don’t have to waste time on getting rid of the heavy parts of the bigger framework. Lets consider what do we have in the market for PHP.