brief intro on DO-178; safety critical software development
Have you heard of it ? If not, you are not the only one, who did not heard such a field until now. Software development should not only focus on development of the software. In those cases, numerous problems will occur eventually, it might resemble addressing the manifestations of a severe ailment without delving into its underlying source. There are some standardizations and certifications which are pointing out main requirements and features of these kind of software systems. I started to learn about this in the aerospace domain, for instance DO-178 safety standard is one of them. Even though DO-178 standard published in 1984, it has been regularly updated in 1985 and 2011. ...
decorators in python with examples
Python has some excellent features which provide you confidence. One of them is decorators. Decorators are used to modify the behaviour of a function or a class. In this article, we will learn how to use decorators in Python. What are decorators? In programming, decorators are functions that enhance the functionality of another function by receiving it as input, modifying it, and then returning a new function. This process is known as metaprogramming, as one part of the program modifies another part during compilation. ...
from interview question to enlightenment: metaclasses in python
It was another interview that I had with a company, and I was asked about metaclasses in Python. Up to now, I did not have a requirement to use them, it leads to have a superficial idea about them but not exactly know what they are, therefore decided to do some research and write a short blog post about them. What are metaclasses? In Python, everything is an object. Classes are objects too. Metaclasses are classes that create classes or customize class creation. We can say that metaclasses are the “stuff” that creates classes. ...
cloudflare tunneling: serve local SSH service without PUBLIC IP
It is always been fun to access a local machine that is running at your home or at university or somewhere which does not have a public IP address or you do not have control over the network. I already wrote a post about cloudflare tunneling however it was about serving local web applications. This time I will show you how to access local SSH service without exposing it to the world. ...
automate: run github ci/cd through slack slash command
In this post, I will create a simple command to run a workflow on Github using AWS Gateway service. This post was written when AWS offered 1 million free API calls per month for a 12-month period. Setup Github The setup on the Github side is minimal and only requires adding a line to the existing workflow file. For demonstration purposes, I will go use one of the repository from merkez. Let’s choose insthat repository for this occurence. ...
cherry-pick: re-build git history
Intro git cherry-pick is a powerful subcommand of git extensive information can be found here: https://www.atlassian.com/git/tutorials/cherry-pick In this mini blog post, I will demonstrate how I just used it to remove specific commits from git history and preserve rest of the information as it is. (e.g metadata, timestamps, author, committer information) cherry-pick is generally used to remove some of the commits from git history, or re-order commit history. In this example, I will go through simple use case of it with combination of git filter-branch. ...
cloudflare workers: add auth to free Gitbook space
Gitbook is simple, easy and free way of keeping notes under your own domain. However, it is NOT possible to set password protection when you do not want anyone access to your resources except you or your team for free. (More information: https://docs.gitbook.com/features/visitor-authentication) Nice news is that it is possible to set password protection even though you are on free tier with some tricks. First of all, for this example, your custom domain should be configured to Cloudflare, since I will use Cloudflare Workers to setup Basic Authentication in between you and Gitbook origin. ...
cloudflare tunneling: serve local like not local
Would like to see it in action right away ? Go to demonstration video here: I am always amazed with Cloudflare’s products, blog posts and tools that they are offering. In my spare time, I am trying to read through blog posts over here Cloudflare Blog. Some of them are really easy to consume, some are not, you might need to have an idea about network related terms, or need to follow Cloudflare closely to catch on the blog posts. ...
github-actions: complain messages to a company in automated way
I am alive !!! Right, I did not post anything for long time and could not imagine that this will be my next blog post after long time, but it is indeed. This is a story about a company who hold the product (- sent for warranty -) for five months and did not respond any emails. Let’s start from the beginning of the story, the product itself is not important, instead how they (- company -) approached to situation is important. ...
go[channels]: hot config reload with os signal
Imagine a scenario where you have a monolithic application which uses a config file to store information about log directories, cert dirs and other service information. As an example to it following config file (- it is taken and modified from Haaukins project which I work on- ) can be considered: host: http: myapplication.mrturkmen.com port: insecure: 8080 secure: 8081 tls: enabled: false certfile: "/home/mrturkmen/certs/cert.crt" certkey: "/home/mrturkmen/certs/cert.key" cafile: "/home/mrturkmen/certs/ca.crt" files: ova-directory: "/home/mrturkmen/ova" users-file: "/home/mrturkmen/configs/users.yml" exercises-file: "/home/mrturkmen/configs/exercises.yml" frontends-file: "/home/mrturkmen/configs/frontends.yml" prodmode: true vpn-service: grpc: "vpnservice.mrturkmen.com:4000" auth-key: random-auth-key sign-key: random-sign-key tls: enabled: true certfile: "/home/mrturkmen/certs/cert.crt" certkey: "/home/mrturkmen/certs/cert.key" cafile: "/home/mrturkmen/certs/ca.crt" In this config file we have some set of keys which are defined to be used inside the application, however let’s say we would like to update some values from the config file. Then in normal cases (-if no hot reload kind of function implemented- ), user needs to restart entire application. It means application will have some down time, it may be less or more however it is not good way of doing it, in particular to update only a value from config file. ...