Skip to content

Commit

Permalink
added cover images
Browse files Browse the repository at this point in the history
  • Loading branch information
berkslv committed Jul 15, 2024
1 parent 0059e73 commit 4e6720b
Show file tree
Hide file tree
Showing 30 changed files with 26 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["learning", "study", "knowledge"]
description = "Explore the philosophical foundations of software development in this article. Learn key principles like responsibility in coding, embracing imperfection, continuous learning, and community building. Ready to adopt a new mindset for success?"
showFullContent = false
readingTime = true
cover = "img/5-core-philosophies-that-every-developer-should-have/cover.webp"
+++

I myself think that software is a philosophy of life before it is a job, and I take great pleasure in approaching most of the problems in my life as a software developer and solving them that way. In this article, I will talk about the cornerstones of this philosophy.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["ci/cd","azure devops","azure app service",".NET","azure"]
description = "When deploying our application, which runs as a single instance in Azure App Service, using Azure DevOps pipelines, there will most likely be a few seconds of downtime. Because the application…"
showFullContent = false
readingTime = true
cover = "img/achieving-zero-downtime-azure-app-service-deployment-using-azure-devops-and-deployment-slots/cover.webp"
+++

Hello! When deploying our application, which runs as a single instance in Azure App Service, using Azure DevOps pipelines, there will most likely be a few seconds of downtime. Because the application running as a single instance will need to be restarted to update it with a new version. In a worst case scenario, if an error occurs in the transition of our application versions, downtime will be extended due to rollback.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["api gateway","yarp","ocelot","kong","apisix","krakend"]
description = "We explore API Gateway alternatives for .NET developers. Starting with .NET-based solutions like YARP and Ocelot, we evaluate OpenResty-based Kong and Apache APISIX as well as Go-based KrakenD. By detailing the features, performance, and use cases of each API Gateway, we aim to help you make the right choice."
showFullContent = false
readingTime = true
cover = "img/api-gateway-alternatives-from-a-net-developer-standpoint/cover.webp"
+++

We can use API Gateway services as an intermediary layer while exposing our services to the outside world in microservice architecture. In this article, we will briefly discuss what an API Gateway is and then talk about .NET, OpenResty, and Go-based API Gateway alternatives along with performance tests.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = [".NET","hangfire","background jobs"]
description = "Learn about managing background jobs in .NET with various methods like Task.Run(), Hosted Service, and Hangfire. This comprehensive blog post explores their pros, cons, and implementation details, with a focus on Hangfire..."
showFullContent = false
readingTime = true
cover = "img/background-jobs-and-hangife-in-net/cover.webp"
+++

When developing an application in the .Net ecosystem, when things get complicated, we may need some of our methods to go to multiple services, evaluate their responses, and report these results to different services and this takes long time! We do not want to waste resources by placing such long-running methods behind an endpoint and keeping our TCP connection open for the response from that HTTP request. We can call this usage on demand job because it will run when a request is made. We may also want it to run automatically at certain times of the day or week, without putting it behind an endpoint; in this case, we can call it a recurring job. In such cases, we use “background job” by starting our work on a different thread other than the main thread where the application runs.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["microservices", "correlationId", "distributed tracing", "middleware
description = "In this article on .NET microservice architecture, we will explore how to use CorrelationId with HTTP and RabbitMQ requests to enhance distributed traceability. We will examine how to propagate the CorrelationId value across different services, manipulate header values in incoming and outgoing requests using Middleware and Filter structures, and log contexts using Serilog's LogContext framework."
showFullContent = false
readingTime = true
cover = "img/correlationid-tracing-net-microservices-with-http-and-rabbitmq/cover.webp"
+++

CorrelationId has a very important place under the title of Distributed Tracing in order to be able to trace the ongoing process during the communication between applications running distributed in the microservice architecture and to understand which steps came to this point if there is a performance-related or flow problem in a service.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["react","nginx","docker","deployment"]
description = "Learn how to deploy a React app with Nginx using Docker in this step-by-step tutorial. This tutorial covers everything from creating a Dockerfile for your React app to using Docker Compose to ..."
showFullContent = false
readingTime = true
cover = "img/how-to-deploy-a-react-app-with-nginx-using-docker-with-react-router-dom/cover.webp"
+++

If you're looking to deploy a React app, there are several options available, including deploying it to a web server or using a containerization tool like Docker. In this tutorial, we'll show you how to deploy a React app with Nginx using Docker. Nginx is a popular open-source web server that is known for its high performance and low resource usage. We'll create a Dockerfile for our React app that uses Nginx to serve the app, and we'll also create an Nginx configuration file to tell Nginx how to serve the app. Finally, we'll build a Docker image of our app and run a Docker container to deploy the app.
Expand Down
1 change: 1 addition & 0 deletions content/english/posts/how-to-learn-something-very-well.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["development", "software"]
description = "Explore the power of effective learning in this concise guide. Learn why knowledge is key, how to cultivate self-discipline, and discover actionable techniques for better retention and comprehension. Dive into recall methods..."
showFullContent = false
readingTime = true
cover = "img/how-to-learn-something-very-well/cover.webp"
+++

When you learn how to learn, you unlock almost all the possibilities in the world with knowledge. Some of you can think practice more important than knowledge, but trust me, if you don’t know something about your working area, you won’t get practice, and if you can, it won’t work, because you don’t know the underlying processes.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["keycloak",".NET","vue","microservices"]
description = "Discover how to secure dotnet and Vue apps with Keycloak. This guide covers Docker setup, realm and client configuration, securing Vue.js apps, creating a Dotnet WebAPI, consuming the API from Vue, and more..."
showFullContent = false
readingTime = true
cover = "img/how-to-secure-dotnet-vue-application-with-keycloak/cover.webp"
+++


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["keycloak","ocelot","microservices","api gateway","oauth"]
description = "In the dynamic landscape of microservices architecture, the need for robust security has become much more important. As organizations break down their applications into smaller, independently…"
showFullContent = false
readingTime = true
cover = "img/how-to-use-ocelot-and-keycloak-together-to-secure-microservices-from-api-gateway/cover.webp"
+++

In the dynamic landscape of microservices architecture, the need for robust security has become much more important. As organizations break down their applications into smaller, independently deployable services, ensuring the integrity and confidentiality of data exchanged between these services becomes a critical concern.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["rsa", "cryptography", ".NET", "security"]
description = "In the digital world, securing communication between different systems is paramount. RSA encryption is an asymmetric encryption algorithm and provides a robust way to achieve this by using a pair of…"
showFullContent = false
readingTime = true
cover = "img/how-to-use-rsa-for-encryption-in-javascript-and-decryption-in-net/cover.webp"
+++

In the digital world, securing communication between different systems is paramount. RSA encryption is an asymmetric encryption algorithm and provides a robust way to achieve this by using a pair of keys: one for encryption and one for decryption. On the other hand, symmetric encryption algorithms, such as AES, use a single key for encryption and decryption. For these reasons, asymmetric encryption algorithms may be preferred in order to use the key publicly and avoid problems even if it falls into the hands of an attacker.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["öğrenme", "çalışma", "bilgi"]
description = "Bu makalede yazılım geliştirmenin felsefi temellerini keşfedin. Kodlamada sorumluluk, kusurları benimsemek, sürekli öğrenme ve topluluk oluşturma gibi temel ilkeleri öğrenin. Başarı için yeni bir zihniyet benimsemeye hazır mısınız?"
showFullContent = false
readingTime = true
cover = "img/5-core-philosophies-that-every-developer-should-have/cover.webp"
+++

Ben kendim, yazılımın bir işten önce bir yaşam felsefesi olduğunu düşünüyorum ve çoğu sorunu bir yazılım geliştirici olarak yaklaşarak ve bu şekilde çözerek büyük keyif alıyorum. Bu makalede, bu felsefenin temel taşlarından bahsedeceğim.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["ci/cd","azure devops","azure app service",".NET","azure"]
description = "Azure App Service'te tek örnek olarak çalışan uygulamamızı Azure DevOps pipeline ile deploy ederken büyük olasılıkla birkaç saniyelik kesinti yaşanacaktır. Çünkü uygulama…"
showFullContent = false
readingTime = true
cover = "img/achieving-zero-downtime-azure-app-service-deployment-using-azure-devops-and-deployment-slots/cover.webp"
+++

Selamlar! Azure App Service'te tek instance olarak çalışan uygulamamızı Azure DevOps işlem hatlarını kullanarak dağıtırken büyük olasılıkla birkaç saniyelik kesinti yaşanacaktır. Çünkü tek instance olarak çalışan uygulamanın yeni sürüme güncellenmesi için yeniden başlatılması gerekecektir. En kötü senaryoda, uygulama sürümlerimizin geçişinde bir hata oluşması durumunda geri alma nedeniyle kesinti süresi uzayacaktır.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["api gateway","yarp","ocelot","kong","apisix","krakend"]
description = ".NET geliştirici bakışından API Gateway alternatiflerini inceliyoruz. YARP ve Ocelot gibi .NET tabanlı çözümlerden başlayarak, OpenResty tabanlı Kong ve Apache APISIX ile Go tabanlı KrakenD'yi değerlendiriyoruz. Her bir API Gateway'in özelliklerini, performansını ve kullanım senaryolarını detaylı bir şekilde ele alıyoruz."
showFullContent = false
readingTime = true
cover = "img/api-gateway-alternatives-from-a-net-developer-standpoint/cover.webp"
+++

API Gateway servislerini microservice mimarisinde servislerimizi dış dünyaya açarken bir ara katman olarak kullanabiliyoruz. Bu yazımızda kısaca API Gateway nedirden bahsedip sonrasında kullanabileceğimiz .NET, OpenResty ve Go tabanlı API Gateway alternatiflerinden performans testleri ile beraber bahsedip sonlandıracağız.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = [".NET","hangfire","background jobs"]
description = ".NET'te arka plan işlerini yönetme hakkında Task.Run(), Hosted Service ve Hangfire gibi çeşitli yöntemlerle ilgili bilgi edinin. Bu kapsamlı blog yazısı, avantajları, dezavantajları ve uygulama detaylarıyla birlikte Hangfire'a odaklanarak bu yöntemleri inceliyoruz."
showFullContent = false
readingTime = true
cover = "img/background-jobs-and-hangife-in-net/cover.webp"
+++

.NET ekosisteminde bir uygulama geliştirirken, işler karmaşıklaştığında, bazı yöntemlerimizin birden fazla servise gitmesi, yanıtlarını değerlendirmesi ve bu sonuçları farklı servislere bildirmesi gerekebilir ve bu uzun zaman alabilir! Bu tür uzun süre çalışan yöntemleri bir endpoint'in arkasına yerleştirerek ve TCP bağlantımızı o HTTP isteğinin yanıtı için açık tutarak kaynakları boşa harcamak istemeyiz. Bu kullanımı on demand job olarak adlandırabiliriz çünkü bir istek yapıldığında çalışacaktır. Ayrıca, belirli günler veya haftanın belirli zamanlarında otomatik olarak çalışmasını isteyebiliriz, bunu bir recurring job olarak adlandırabiliriz; Bu tür durumlarda, işimizi uygulamanın çalıştığı main thread'den farklı bir thread başlatarak "background job" kullanabiliriz.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["microservices", "correlationId", "distributed tracing", "middleware
description = ".NET microservice mimarisinde, HTTP ve RabbitMQ istekleriyle CorrelationId kullanarak dağıtık izlenebilirliği arttırdığımız bu yazıda, CorrelationId değerinin farklı servisler arasında nasıl gezdirileceğini, Middleware ve Filter yapılarıyla gelen ve giden isteklerde header değerleri üzerinde nasıl manipülasyon yapılacağını ve Serilog'un LogContext yapısıyla contextlerin loglanmasını keşfedeceğiz."
showFullContent = false
readingTime = true
cover = "img/correlationid-tracing-net-microservices-with-http-and-rabbitmq/cover.webp"
+++

Microservice mimarisinde dağıtık olarak çalışan uygulamaların kendi aralarında yaptıkları iletişimler sırasında devam eden işlemin takip edilebilirliği ve eğer bir serviste performans sebepli veya akışsal bir sorun varsa hangi adımlardan sonra buraya geldiğini anlamlandırabilmek için Distributed tracing başlığı altında CorrelationId çok önemli bir yere sahiptir.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["react","nginx","docker","deployment"]
description = "Bu adım adım kılavuzda, bir React uygulamasını Nginx kullanarak Docker ile nasıl dağıtacağınızı öğreneceksiniz. Bu kılavuz, React uygulamanız için bir Docker dosyası oluşturmaktan Docker Compose kullanımına kadar her şeyi kapsar..."
showFullContent = false
readingTime = true
cover = "img/how-to-deploy-a-react-app-with-nginx-using-docker-with-react-router-dom/cover.webp"
+++

Bir React uygulamasını deploy etmek istiyorsanız, web sunucusuna deployment veya Docker gibi bir container aracı kullanma gibi birkaç seçenek mevcuttur. Bu kılavuzda, bir React uygulamasını Nginx kullanarak Docker ile nasıl deploy edebileceğimizi göreceğiz. Nginx, yüksek performansı ve düşük kaynak kullanımı ile tanınan popüler bir açık kaynaklı web sunucusudur. React uygulamamız için bir Docker dosyası oluşturacağız ve uygulamayı sunmak için Nginx'i kullanacağız. Ayrıca, Nginx'e uygulamayı nasıl sunacağını söylemek için bir Nginx yapılandırma dosyası da oluşturacağız. Son olarak, uygulamamızın bir Docker image'ini oluşturacak ve uygulamayı deploy etmek için bir Docker container çalıştıracağız.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["development", "software"]
description = "Bu kısa kılavuzla etkili öğrenmenin gücünü keşfedin. Bilginin neden önemli olduğunu, öz disiplinin nasıl geliştirileceğini öğrenin ve daha iyi akılda tutma ve kavrama için uygulanabilir teknikleri keşfedin. Geri çağırma yöntemlerine dalın..."
showFullContent = false
readingTime = true
cover = "img/how-to-learn-something-very-well/cover.webp"
+++

Nasıl öğreneceğinizi öğrendiğinizde, bilgi ile dünyadaki hemen hemen tüm olasılıkların kilidini açarsınız. Bazılarınız pratiğin bilgiden daha önemli olduğunu düşünebilir, ama inanın bana, çalışma alanınız hakkında bir şey bilmiyorsanız, pratik yapamazsınız ve yapabilirseniz de işe yaramaz çünkü altta yatan süreçleri bilmiyorsunuzdur.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["keycloak",".NET","vue","microservices"]
description = "Dotnet ve Vue uygulamalarını Keycloak ile nasıl güvence altına alınacağını keşfedin. Bu rehber, Docker kurulumu, alan ve istemci yapılandırması, Vue.js uygulamalarını güvence altına alma, Dotnet WebAPI oluşturma, API'yi Vue'dan tüketme ve daha fazlasını içerir..."
showFullContent = false
readingTime = true
cover = "img/how-to-secure-dotnet-vue-application-with-keycloak/cover.webp"
+++

Bu yazıda, dotnet ve vue uygulamalarımızı keycloak kullanarak nasıl güvence altına alabileceğimizi konuşacağım.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["keycloak","ocelot","microservices","api gateway","oauth"]
description = "Mikroservis mimarisinin dinamik dünyasında, güçlü bir güvenliğe olan ihtiyaç çok daha önemli hale gelmiştir. Kuruluşlar uygulamalarını daha küçük, bağımsız bir şekilde deploy edilebilir servislere böldükçe…"
showFullContent = false
readingTime = true
cover = "img/how-to-use-ocelot-and-keycloak-together-to-secure-microservices-from-api-gateway/Microservice-architecture-with-Ocelot-and-Keycloak.webp"
+++

Mikroservis mimarisinin dinamik dünyasında, güçlü bir güvenliğe olan ihtiyaç çok daha önemli hale gelmiştir. Kuruluşlar uygulamalarını daha küçük, bağımsız bir şekilde deploy edilebilir servislere böldükçe, bu servisler arasında alınan ve gönderilen verilerin bütünlüğünü ve gizliliğini sağlamak kritik bir önem haline gelir.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ keywords = ["rsa", "cryptography", ".NET", "security"]
description = "In the digital world, securing communication between different systems is paramount. RSA encryption is an asymmetric encryption algorithm and provides a robust way to achieve this by using a pair of…"
showFullContent = false
readingTime = true
cover = "img/how-to-use-rsa-for-encryption-in-javascript-and-decryption-in-net/cover.webp"
+++

Dijital dünyada, farklı sistemler arasındaki iletişimin güvence altına alınması çok önemlidir. RSA şifreleme, iki adet anahtar kullanarak şifreleme ve şifre çözme için sağlam bir yol sağlar. Öte yandan, AES gibi simetrik şifreleme algoritmaları, şifreleme ve şifre çözme için tek bir anahtar kullanır. Bu nedenlerle, anahtarı halka açık olarak kullanmak ve hatta bir saldırganın eline geçse bile sorunları önlemek için asimetrik şifreleme algoritmalarından olan RSA tercih edilebilir.
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
10 changes: 6 additions & 4 deletions themes/terminal/layouts/partials/cover.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@

{{if $cover -}}
<!-- Cover image found -->
<img src="{{ $cover }}"
class="post-cover"
alt="{{ .Title | plainify | default " " }}"
title="{{ .Params.CoverCredit |plainify|default "Cover Image" }}" />
<!-- Currently unvisible because I don't want to
<img src="{{ $cover }}"
class="post-cover"
alt="{{ .Title | plainify | default " " }}"
title="{{ .Params.CoverCredit |plainify|default "Cover Image" }}" />
-->
{{- end }}

0 comments on commit 4e6720b

Please sign in to comment.