Merhaba arkadaşlar. Bugün sizlere API lerde kimlik doğrulama yöntemlerinden biri olan token tabanlı kimlik doğrulama yöntemiyle ilgili bilgilendirme yazısı paylaşacağım.

Giriş

Token (jeton) tabanlı kimlik doğrulama, günümüzde web’in her yerinde öne çıkıyor. API kullanan her web şirketinin çoğunda tokenlar, birden çok kullanıcı için kimlik doğrulamasını gerçekleştirmenin en iyi yoludur.

Uygulamanız için token tabanlı kimlik doğrulamasını seçerken çok önemli bazı faktörler vardır.

  • Stateless (durumsuz) ve ölçeklenebilir sunucular
  • Mobil uygulama uyumluluğu
  • Kimlik doğrulamayı diğer uygulamalara aktarma
  • Ekstra güvenlik

Tokenlar neden ortaya çıktı?

Token tabanlı kimlik doğrulamanın nasıl çalıştığını ve faydalarını görmeden önce, geçmişte kimlik doğrulamanın nasıl yapıldığına bakmalıyız.

HTTP protokolü durumsuz (stateless) olduğundan bir kullanıcının kimliğini doğruladığımızda…


HTTP (The Hypertext Transfer Protocol), World Wide Web’in temelidir ve hypertext bağlantılarını kullanarak web sayfalarını yüklemek için kullanılır.

HTTP protokolü client-server mimarisinde çalışır. Client tarafından request (istek) gönderilir ve server tarafından response (cevap) alınır.

HTTP, ağa bağlı cihazlar arasında bilgi aktarmak için tasarlanmış bir uygulama katmanı protokolüdür ve bir alt katmanda TCP üzerine kurulmuştur. Bu sebeple HTTP haberleşmeleri sırasında gerçekleşebilecek veri kaybı, veya kaybedilen verinin tekrar gönderimi veya doğru sıraya konması gibi konularla TCP ilgilenir.

HTTP isteğinde neler var?

HTTP isteği, web tarayıcıları gibi internet iletişim platformlarının bir web sitesini yüklemek için ihtiyaç duydukları bilgileri isteme şeklidir.

İnternet üzerinden yapılan…


Programlama dilleri uygulama yürütme süreci esnasında verilerin adresleneceği RAM bellek bölgesini birkaç farklı bölgeye ayırarak kullanırlar. Uygulama çalışma zamanında (runtime) açılacak olan değişken ve nesneleri bu bölgelerde oluşturarak, sahip oldukları verileri adreslerindeki yerlerine yerleştirirler. Öncelikli olarak bu bellek bölgelerini kısaca tanıyalım;

RAM Bellek bölgeleri Nelerdir?

1. Stack Bölgesi

Konuya girmeden Stack Pointerlarla ilgili bilgi verelim.

Stack (Yığın) kavramı Bilgisayar bilimleri alanından gelen soyut bir veri yapısıdır. Öyle ki, temel amacı içine bi takım objeler saklamak olan bu yapının temel özelliği içine son koyduğunuz objeyi ilk geri almanızdır. Yani bir stack’iniz varsa iki işlem yapabilirsiniz: PUSH yani stack’e obje saklamak, ve POP yani stack’ten…


Merhabalar.
Bu yazımda Google’ın geliştirdiği ve kendi içinde de kullandığı JSON ve XML e göre daha performanslı ve verimli Protocol Buffer (Protobuf) protokolünden bahsedeceğim.

Yazı İçeriği

  1. Hikaye
  2. Protocol Buffer’ a Giriş
    2.1. İlk Mesajı Tanımlama
    2.1.1. Mesaj Tipleri
    2.1.2. Tag (Etkiket) Kavramı
    2.1.3. Repeated (Tekrarlanan) Alanlar
    2.1.4. Default (Varsayılan) Değerler
    2.1.5. Enum
    2.1.6. Reserved Keywords (Ayrılan Keywordlar)
    2.1.7. Maps Koleksiyonu
    2.1.8. Oneof Keywordü
    2.1.9. İç İçe (Nested) Tipler
    2.1.10. TimeStamp
    2.1.11. Duration
    2.2. Örnek Uygulama

1. Hikaye

JSON (JavaScript Nesne Gösterimi), REST API'ler da uzun zamandır veri iletişim standartı olmuştur. Uzun zaman önce geliştiriciler, JSON protokolünü XML e tercih ettiler. …


Merhabalar.
Bu yazıda thread-safe koleksiyonlardan bahsedeceğim. Öncelikle Thread-Safe kavramını açıklayacak olursak; bir iş parçacığını birden fazla kaynağın kullanabilmesi anlamına gelmektedir.

Concurrent Collection yapıları normalde bir iş parçacığını birden fazla kaynağın kullanması durumunda oluşabilecek hataların önüne geçmemizi sağlayan yapılardır. Bu yapılar .NET 4.0 ile birlikte hayatımıza girmiştir.

Thread Safe + aynı anda ilerleme, ekleme, çıkartma, düzenleme yapabilme yeteneği = pahalı maliyet

Concurrent Collections’ lar 5 e ayrılır. Bunlar;

  1. ConcurrentDictionary
  2. ConcurrentStack
  3. ConcurrentQueue
  4. ConcurrentBag
  5. BlockingCollection

Aşağıdaki senaryoda eğer bir Dictionary koleksiyonun üyelerinin dolaşılması sırasında, eleman çıkartma işlemi gerçekleştirildiğinde çalışma zamanında aşağıdaki ekran görüntüsünde yer alan InvalidOperationException istisnasını almanız gerekirdi. …


Canny kenar belirleme algoritması; görüntüde keskin olarak belirlenmiş kenarları bulmak için John F. Canny tarafından geliştirilmiş ve aşamaları olan bir algoritmadır.

Kenar bulmada son derece etkin olarak kullanılan bir algoritmadır. Aşamaları maddeleyecek olursak; Görüntünün gürültülerini azaltmak amacıyla Gaussian çekirdekle konvolüsyon alınarak azaltılır. Gaussian filtre dışında Mean ya da Medyan filtrede kullanılabilir. . Gradyan operatörü uygulanır. Bu şekilde görüntünün Gradyan büyüklüğü ve yönü hesaplanır. Bu işlem için Sobel filtresi en çok kullanılan yöntemdir. Bunun dışında Prewitt ve Robert kenar bulma metotları da mevcuttur. . Kenarlar Non Maxima baskılama kullanılarak incelemeye alınır. . İkili eşikleme uygulanır bu şekilde istenmeyen ayrıntılardan arındırılma işlemi gerçekleştirilir. . Güçlü-zayıf ayrımı yapıldıktan sonra baskılama uygulanır ve asıl kenarlarla görüntüye son hali verilir.


Bir görüntünün integralini alarak hızlı bir şekilde alt bölgeleri üzerinden toplamlarını hesaplayabiliriz. Bunu yaparken genel olarak Viola-Jones algoritması kullanılır.

İntegral görüntüler, piksel toplamasını kolaylaştırır ve görüntü boyutuna bakılmaksızın, sabit zamanda gerçekleştirilebilir

İntegral Görüntü Toplama Nasıl Çalışır?

Bütünleşik bir resimdeki her piksel yukarıdaki ve solundaki piksellerin toplamıdır.

Bir görüntünün alt bölümünün toplamını hesaplamak için, integral görüntüsünün karşılık gelen bölgesini kullanabilirsiniz. Örneğin, aşağıdaki giriş görüntüsünde, gölgeli bölgenin toplamı, karşılık gelen integral görüntüsündeki dikdörtgen bölgenin dört referans değerini kullanarak basit bir hesap haline gelir. Hesaplama 46–22–20 + 10 = 14 olur. Hesaplama, gölgeli bölgenin üstündeki ve solundaki bölgeleri çıkarır. Örtüşme alanı, çift çıkarmayı telafi etmek için geri eklenir.


Merhaba Arkadaşlar…

Bu makalemizde, var olan bir görüntü(image) üzerinde bilgisayarli görme — goruntu isleme konularından morfolojik islemler (opening, closing, erosion, dilation)’de strel komutuyla çalıştıracağız.

Görüntü işlemenin zevkli konularından birisi olan morfolojik işleme ile örneklerimize başlayalım isterseniz. Morfolojik görüntü işleme resimlerin genellikle şekilsel bazda ele alınıp işlenmesidir diyebiliriz.

Orjinal Resim


Merhabalar arkdaşlar. Bu yazımda özel bir threshold tipi olan OTSU’nun methodundan bahsedeceğim. Bu threshold tipini ayrı ele almak istedim.

Adını bu metodu geliştiren Nobuyuki Otsu’dan almıştır. Yöntem gri seviye görüntüler üzerinde çalışır ve sadece renklerin görüntü üzerinde kaçar defa bulunduğuna bakar. Gri seviyedeki bir görüntüyü ikili seviyeye dönüştürülerek kullanılabilecek en uygun eşik değerinin tespitini sağlar.

Global eşiklemede, eşik değeri için keyfi bir değer kullanmıştık. Peki, seçtiğimiz değerin iyi olduğunu nasıl bilebiliriz? Bu yöntemde, renklerin görüntü üzerinde var olma sayısına bakıldığı için uygulamaların eşik belirleme adımına geçmeden önce renk histogramı hesaplanır ve tüm hesaplamalar bu histogram üzerinden yapılır. …


Bir önceki makalemde eşik değeri olarak global bir değer kullandık. Fakat görüntünün farklı alanlarda farklı aydınlatma koşullarına sahip olduğu tüm koşullarda iyi olmayabilir. Bu durumda, uyarlanabilir eşik değer almaktayız.

Adaptif eşiklemede resmin küçük bir bölgesi için eşik değeri hesaplanır. Bu nedenle, aynı görüntünün farklı bölgelerinde farklı eşikler elde ediyoruz ve farklı aydınlatmalara sahip görüntüler için daha iyi sonuç vermektedir.

Adaptif eşiklemede, eşik değerinin nasıl hesaplanacağına karar veren iki yöntem mevcuttur.

ADAPTIVE_THRESH_MEAN_C: eşik değeri komşu piksellerin alanlarının ortalamasıdır.

ADAPTIVE_THRESH_GAUSSIAN_C: eşik değeri, ağırlıkların bir gaussian penceresi olduğu komşuluk değerlerinin ağırlıklı toplamıdır.

Blok Boyutu — Komşuluk alanının boyutunu belirler.

C — Hesaplanan ortalama veya ağırlıklı ortalamadan çıkarılmış bir sabittir.

Aşağıdaki kod parçası, aydınlatma değişikliğine sahip bir görüntü için global eşitleme ve uyarlanabilir eşikliği karşılaştırır:

Çağlar GÜL

elektrik-elektonik mühendisi | yazılıma ve tasarıma meraklı | araştırmayı ve paylaşmayı seven | blogger ve oyun sevdalısı

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store