Öne Çıkanlar

wrk ile HTTP Benchmark Yapmak

HTTP servislerini yazdığımızda, yazılı servisleri yayına aldığımızda veya güncelleme yaptığımızda; bu ve benzer süreçlerin öncesinde, hatta bazen derleme aşamasında benchmark yaparak, ilgili servisin ne kadar isteğe cevap verdiğini ölçmek, olası performans problemlerinin veya bloklayan bir sorun varsa onun baştan tespit edilmesine yardımcı olacaktır. Bu amaçla geliştirilen birçok proje arasında özgür yazılım projeleri de çok sayıda bulunuyor. Bu yazıda, wrk aracından bahsedeceğiz. Neden Kullanmalıyız? Wrk aracı, tek veya çok çekirdekte çalışabilen, ciddi anlamda yüksek boyutlarda yük üretebilen bir HTTP benchmark aracıdır. C++ ile yazıldığı için oldukça performanslı çalışmakta ve bir son kullanıcı bilgisayarında yapılan yük testlerinde bile saniyede yüzbinlerce isteği kolaylıkla üretebilme...

.NET’de ElasticSearch ile Çalışma

Merhabalar; Bu yazımda .Net’de ElasticSearch nasıl kullanılır buna bakacağız. ElasticSearch Lucene library’si üzerine inşaa edilmiş çok yetenekli açık kaynak bir metin arama motorudur. ElasticSearch, verileri JSON biçiminde saklayan bir Veritabanıdır. Verileri yapılandırılmamış biçimde saklar. Elasticsearch, indeksleme, otomatik tahmin vb. işlemler için Lucene StandardAnalyzer kullanıyor. Elasticsearch’ün bütün özellikleri bir REST API olarak bulunmaktadır. API’nin yardımıyla, Arama, Verileri Alma, Gönderme, Silme işlemlerini yapabiliyoruz. ElasticSearch Java ile geliştirilmiştir, öncelikle kurulum ve yapılandırması için JRE’yi kurmalıyız. JRE yüklendikten sonra aşağıdaki bağlantıdan ElasticSearch indirerek kurmamız gerekmektedir; https://www.elastic.co/downlo...

.NET Core’da NodeServices ile Node.js Modüllerinin Kullanımı

Merhabalar; Bu yazımda NodeServices ile Node.js modüllerinin kullanımını anlatacağım. Yapacağımız örnekte bir html sayfasını PDF’e dönüştürmek için bir npm paketi olan phantomjs kullanacağız. phontomjs’nin tüm özelliklerini kullanmayacağız, sadece NodeServices ile nasıl çalışabileceğimizi anlamak adına pdf dönüşümünü öğreneceğiz. Öncelikle çalışacağımız cihazda Node.js yüklü değil ise https://nodejs.org sitesinden gerekli adımları takip ederek kurulumu gerçekleştiriyoruz. Bir ASP.NET Core uygulaması oluşturarak devam ediyoruz, uygulamayı oluşturduktan sonra uygulama klasörünün içerisine aşağıdaki verilerin bulunduğu bir package.json dosyası oluşturuyoruz, bu bize gerekli paketlerin yüklenmesi için lazım olacak. package.json json oluşturulduktan sonra bir komut penceresi açarak ...

Linux’da MonoDevelop IDE Kullanarak .NET Core Web Api Oluşturma

Merhabalar, Bu yazımda Linux üzerinde MonoDevelop kullanarak .NET CORE Web Api projesi oluşturmak için gerekli olan kurulumların nasıl yapılacağını anlatacağım. Ben Ubuntu 18.04 sürümü kullanarak bu işlemleri gerçekleştirdim. Ubuntu’da bir konsol ekranı açarak aşağıdaki komutları çalıştırıyoruz. mono-devel kurulumunu gerçekleştirmiş ve mono –version komutu ilede kurulu versiyonun döndürülmesini sağlamış olduk. Artık Linux üzerinde C# uygulamalarını oluşturabilir ve çalıştırabilir durumdayız. MonoDevelop (IDE) Kurulumu Şimdi MonoDevelop IDE’yi kurarak görsel olarak proje oluşturup kodlama yapmamızı kolaylaştıracağız. Yine komut ekranında aşağıdaki komutları çalıştırıyoruz; Kurulumu gerçekleştirdik, artık IDE kullanarak proje oluşturabiliriz, fakat .NET CORE projesi oluştur...

.NET CORE ile Şifreleme ve Şifre Çözme (Encryption-Decryption)

Merhabalar;Bu yazımda C# ile Symmetric key kullanarak önceden tanımlanmış AES sınıfı ile şifreleme ve şifre çözme örneği yapacağım. Burada oluşturduğumuz projeye Github adresimden ulaşabilirsiniz. AES algoritması 128, 198 ve 256 bit şifrelemeyi destekler. Symmetric key, veri şifrelemede kullanılan bir dizedir, aynı dize ile hem şifreleme hemde şifre çözme yapılabilir. Projeyi .NET CORE konsol uygulaması ile yapacağız, bu nedenle öncelikle bir proje başlatarak devam edebiliriz. Projemizi oluşturduktan sonra öncelikle dizemizi bir class içerisine alalım, bunun için bir class oluşturuyoruz. Class içeriğimiz aşağıdaki gibidir; Burada, şifreleme ve şifre çözme için “System.Security.Cryptography” namespace kullanan ve burada önceden tanımlanmış olarak bulunan AES class’ını kull...

C# Asenkron Anti-Pattern’ler | Bölüm 1

Merhabalar;C#’da async ve await, asenkron kod yazmayı basitleştirerek büyük bir iş yaptı, fakat ne yazık ki bu tarz güzel özellikler bile yanlış yapmaktan bizi koruyamıyor.  Bu yazıda, kod incelemelerinde karşılaştığım en yaygın asenkron kodlama hatalarına veya anti-pattern’lere değinmek istiyorum. 1- await Kullanmayı Unutmayın; Task ya da Task<T> döndüren bir method çağırdığınız da, dönüş değerini göz ardı etmemenizde fayda vardır. Daha sonraya erteleyecek şekilde beklemekten kaçınabilirsiniz ama, çoğu durumda bu fonksiyonu beklemeniz anlamına gelir. Aşağıda ki örnekte, Task.Delay‘ı çağırıyoruz, ancak onu beklemiyoruz, “Sonra” mesajı hemen yazdırılacak çünkü Task.Delay (1000) bir saniyede tamamlayacak bir görev döndürüyor, fakat bu g...

SharePoint Online Performans İpuçları

Kurumsal işleyişin hayatımızda büyük önem alması ile beraber, şirket içi portal kullanımları da artış hatta görsel anlamda da daha çok özelleştirilebilir olmuştur. SharePoint özelleştirme yöntemleri ikiye ayrılmaktadır. Bunlardan birincisi SharePoint Eklentisi yani AddOn diğer ise SharePoint Framewroktür. Bunlar belirli işlemler üzerinde yürütülen ve mutlak bir dağıtım mimarisine sahip olan yöntemlerdir. Belirttiğimiz bu mimari istemciden sunucu üzerine istek yapma ve verinin tekrardan istemci üzerine dönmesi üzerine kurulu bir mimaridir. Yukarıda bahsedilen mimariye ait SharePoint online üzerinde yapılan geliştirmeler genel olarak istemci tarafı web uygulamaların için performans önem ihtiva ettiğinde performansdan daha çok tasarımsal öğelere ve hızlıgeliştirmelere daha çok önem verilmekte...

CORS Problemlerinize Kolay Çözüm; Azure Functions Proxy

Tam da böyle bir API bulmuşken CORS yüzünden çağıramadığınız ve yine “Offf bunun için back-end yazacağız şimdi” diye dertlendiğiniz oldu mu? 🙂 Süper can sıkıcı bir durum. Bazen basit bir şekilde JavaScript’ten uzanabileceğiniz bir yere sırf bu yüzden uzanamamak ve araya bir back-end almak can sıkabiliyor. Hele bir de projede hiç back-end yoksa 🙂 ve sırf bu nedenle bir back-end parçası eklemek zorunda kalıyorsam neredeyse projeden vaz geçesim geliyor 🙂 Sahnede Azure Functions 🙂 “Tamam yine API yazacağız sonuçta” der gibiyseniz bana biraz daha zaman verin 🙂 Tek satır bile kod yazmayacaksınız, garantisi benim. Aslında sahneye alacağımız arkadaş Azure Functions’ın bir parçası olan Function Proxies. Function Proxy’ler adından da anlaşılacağı üzere kolay...

Docker ile Redmine Kurulumu

Redmine, proje yönetiminde/takibinde en çok kullanılan web uygulamalarından biri. Tema ve eklenti desteği sayesinde, Redmine’a alışmak ve özelleştirmek hızlı ve kolay bir şekilde gerçekleştirilebiliyor. Bu yazıda, Redmine’ın Docker ile nasıl kurulabileceğine bakacağız. Veritabanı olarak Postgres kullanacağız. Stateful uygulamalara ait dosyaları, sunucu üzerinde oluşturacağımız volumelarda tutacağız. Docker ile Manuel Kurulum Network Oluşturmak Postgres ile Redmine arasındaki iletişimin sağlanması için bir network oluşturarak başlayacağız. Komutları tek bir makine üzerinde çalıştıracağımız için bridge network oluşturacağız: Volume Oluşturmak Daha önce de belirttiğimiz gibi, stateful uygulamalar için volume oluşturacağız. Containerlar silindiğinde dosyaların otomatik olarak silin...

Infer.NET Olasılığa Dayalı Programlama

Merhabalar;Bu yazımda Infer.Net ve Olasılığa dayalı programlama nedir bunu anlatmaya çalışacak ve Microsoft tarafından verilen bir örnek üzerinden kod incelemesi yapacağım. Olasılığa dayalı programlama; gerçek işlemlerin istatistiksel modellerini oluşturmamızı sağlar. Infer.NET Yapay zeka alanında Microsoft’un son teknolojilerinden bir tanesi. Model tabanlı makine öğrenme için platform bağımsız açık kaynak bir framework. Peki model tanımlı derken ne demek istiyoruz? Sorununuzu varolan bir makine öğrenme algoritmasını kullanmak yerine tanımladığınız modelden kendi makine öğrenme algoritmasını oluşturarak çözmenizi sağlar. Model tabanlı makine öğrenme, gerçek zamanlı veriler, heterojen veriler, yetersiz veriler, etiketsiz veriler ve eksik parçaları olan veriler gibi belirli veri özelli...

KPI ve Balance Score Card

Merhaba, yazımızda son zamanların gözde mesleklerinden veri analistliğine başlayacak arkadaşlarımızın IT Pro ve yöneticilerinden sıkça duyduğu terimlerin bazılarından olan KPI ve Balance Score Card kelimelerini anlatmaya çalışacağım.  Kurumlar için verinin toplanmasından ziyade bu verilerin doğru olarak işlenmesi ve pazarlama stratejilerine yön vermesi çinde bulunduğumuz e-ticaret furyası zamanında, analiz ve raporlama can alıcı bir noktada yer almaktadır. Bu bağlamda KPI değerlerinin ölçülmesi önem taşımaktadır.  KPI NEDİR ?  Öncelikle KPI nedir ne işe yarar biraz anlatalım. Dilimize pelesenk olmuş kelimelerden bir tanesi aslında KPI. Ecnebice’si uzun olarak  Key P...

Falcon: Mikroservis ve API’lar Yazmak için Şahane bir Framework

Falcon, backend ve mikroservis geliştirmeyi kolaylaştıran ve yüksek hız sağlayan bir Python frameworkü. Aynı donanım üzerinde daha fazla istekle baş edebileceği konusunda iddialı gözüken bir yapıda. Falcon aynı zamanda PyPy destekliyor ve bu özelliği onu daha da hızlı çalışabilir hale getiriyor. Falcon ile API yazmaksa gerçekten çok kolay. Aslında, bir API’ı yazmak ve Gunicorn veya herhangi bir WSGI sunucusuyla yayına almak için birkaç dakika bile yeterli olabiliyor. Bu yazıda, Falcon ile örnek bir API yazmaya çalışıp, sonra da ona istek göndereceğiz. Falcon’un hızını görmek için de nasıl benchmark çalıştırabileceğimize bakacağız. Benim bilgisayarımda benchmark çalıştırdığımda aldığım sonuçları yazının bir sonraki kısmında bulabilirsiniz. Code coverage konusunda %100 oranını sa...

  • 1
  • 2