Javascript Hoisting

Javascript dilinin nasıl yorumlandığı ile alakalı bir durum olan Hoisting kavramını bilmekte fayda var diye düşünüyorum. Örneğin aşağıdaki gibi bir kod yazdığımızda; console.log(username); var username = "aykuttasil"; alacağımız çıktı undefined şeklinde olur. Normal şartlarda beklediğimiz sonuç hata fırlatmasıdır. Çünkü username değişkeni tanımlanmadan önce yazdırılmaya çalışılmıştır. Ama beklediğimiz şekilde olmaz ve ekrana undefined yazılır. Peki Neden? Yukarıdaki gibi bir kod bloğu çalıştırılmadan önce javacsript tarafından hoisting işlemi uygulanır ve tüm var değişkenleri kod bloğunun(scope) en üstüne taşınır ve default olarak undefined atanır....

April 3, 2020 · 2 min · Aykut Asil

Docker Series - 1

Docker ile ilgili komut listesine erişmek için komut satırına docker --help ya da sadece docker yazabilirsiniz. docker run Docker ile ilgili bir çok temel fonksiyonu docker run komutu ile sağlayabilirsiniz. Hızlıca Docker Hub‘da bulunan bir image’i makinemize kurmak istiyorsak aşağıdaki komut işimizi görecektir. docker run ubuntu Yukarıda ki komutu yazdığınızda ilk önce ilgili image dosyasının makinenizde olup olmadığına bakılır ve sonrasında eğer varsa zaten inmiş olan image çalıştırılılr....

April 3, 2020 · 2 min · Aykut Asil

Docker Series - 2

Docker Container’ı Detach modda çalıştırmak Uygulamanızı yazarken eğer thread’ler ile biraz derin bir ilişki kurmuşsanız daemon kavramıyla karşılaşmış olabilirsiniz. Kısaca, “arka tarafa git ve sessiz sedasız çalışmaya devam et” demek diyebiliriz. Ayrıntılı bilgi için -> Google :) Aynı mantık ile container‘ımızın arka planda sesiz sedasız çalışmasını isteyebiliriz. Örneğin web sitemizi bir container’a kurduk, yerleştirdik ve belli bir port üzerinden dışarıya açtık. Ve artık bu container kapanmadan sürekli çalışması gerekiyor ki web sitemize erişebilelim....

April 3, 2020 · 2 min · Aykut Asil

Android Background Location

Android 10 ile birlikte gelen değişiklerden biri de Location dinleme ile alakalıdır. Uygulamamız arka plandayken (background) ve ön plandayken (foreground) konum dinleme şekilleri farklılık göstermektedir. Uygulamımız bize görünür vaziyette ise yani foreground‘da ise her hangi bir değişiklik yapmamıza gerek yoktur. Fakat Home tuşuna basarak veya başka bir uygulama açarak uygulamamızı arka plana atıyorsak ve bu sırada konum dinlemesinin devam etmesini istiyorsak bazı düzenlemeler yapmamız gerekmektedir. İki şekilde background konum dinlemesi yapılabilir....

January 17, 2020 · 2 min · Aykut Asil

Kotlin DSL ile Json

Kotlin DSL kullanarak Json Objesi nasıl oluşturulur ? Normalde Json objesi oluşturmak için aşağıdaki gibi bir yöntem izleriz. val jsonObject = JSONObject() jsonObject.put("name","Aykut") jsonObject.put("age",20) Bunu Kotlin DSL ile çok daha ergonomik bir şekilde hazırlayabiliriz. Öncelikle Json isminde bir sınıf oluşturuyoruz ve JsonObject sınıfından kalıtım alıyoruz. Ve DSL kullanabilmek için gerekli custom constructor fonksiyonumuzu yazıyoruz. class Json() : JSONObject() { constructor(json: Json.() -> Unit) : this() { this.init() } } Json objemizi hazırlarken kolaylık olsun diye bir infix fonksiyonu ekliyoruz....

January 3, 2020 · 1 min · Aykut Asil

Asp.Net Core Session

Asp.Net Core Session Kullanımı Asp.Net Core 2.1 ve üstü sürüme sahip projelerinizde Session kullanmak için Startup.cs dosyanızı aşağıdaki yöntemlerden birini seçerek güncellemeniz gerekmektedir. Yöntem 1 Yöntem 2 Neden Asp.Net Core 2.1 ve sonrası? 2018’de uygulanması zorunlu hale gelen Avrupa Veri Koruma Kanunu ile birlikte, şirketlere kişisel verileri kullanması konusunda bazı kısıtlamalar ve uygulaması gereken bazı zorunluluklar getirilmiştir. Bu zorunluluklardan şu an için bizi ilgilendiren kısmı cookielerin kullanımı. Web siteleri cookie kullanımı için son kullanıcının onayını almak zorundadır....

November 12, 2019 · 1 min · Aykut Asil

Android Debugging With Local Web Server

Fiziksel Android cihazımızla localimizde çalışan web server’a erişmek, development aşamasında eminim ihtiyaç duyduğunuz veya duyacağınız gereksinimlerden biridir. Bununla beraber local makinenizde bulunan VM üzerinde koşan web server’a erişmek.. Ah harika.. Canlı bir örnek verirsem sanıyorum daha iyi olacak. Geliştirme yaptığınız makinenizinde MacOS işletim sistemi var. Bununla beraber çeşitli ihtiyaçlarınızdan ötürü windows kurmanız gerekti ve Virtual Machine kurarak içine windows yüklediniz. Windows üzerinde Visual Studio ile bir WebApi ayağa kaldırdınız ve bu api‘ye fiziksel Android cihazınızdan erişmek istiyorsunuz....

August 3, 2019 · 2 min · Aykut Asil

ADB Komutu ile Cihaz IP'sini Öğren

Aşağıdaki komutu çalıştırarak android cihaz ip’sini öğrenebilirsiniz. > adb shell ip -f inet addr show wlan0

July 20, 2019 · 1 min · Aykut Asil

Android File System

Internal Storage vs External Storage Internal Storage Her zaman erişilebilir. Sadece uygulamanın kendisi tarafından erişebilir. Buraya kaydedilen dosyalar başka bir uygulama tarafından görünmez. USB ile bilgisayara bağlanıldığında bu dosyalara erişim sağlanamaz. Uygulama silindiğinde internal storage temizlenir. External Storage Her zaman erişilebilir durumda olmayabilir. External storage cihaza dahili olarak bulunabileceği gibi USB cihazı olarak sonradan takılmış bir cihaz da olabilir. Bu nedenle erişebilir olup olmadığı kontrol edilmelidir (getExternalStorageState()). External Storage’a kayıt edilen dosyalar başka uygulamalar tarafından okunabilir ve görülebilir durumda olabilir....

June 27, 2019 · 2 min · Aykut Asil

ASP.NET Core Filters

Not: Bu makale hazırlanırken kullanılan .net core versiyonu: 2.2 ASP.NET Core‘daki filter yapısı, middleware bileşenine benzer fakat bazı farklılıkları vardır. Filter’lar ile sadece request-response süreci arasına girilerek istenilen kod blokları çalıştırılabilir. Filter tipine göre request-response sürecinin hangi aşamasında çalıştırılacağı belirlenebilir. Oldukça özelleştirebilir bir yapı sunar bize Filter’lar. Filter Tipleri Authorization Filters İlk çalışan filter‘dır. İlgili mvc action metoduna erişmek için user‘ın yetkisi olup olmadığını kontrol eder. Eğer koşullar sağlanıyor ise ilgili mvc action metodu çalışır....

April 29, 2019 · 2 min · Aykut Asil