22.07.2020

Java Timer Sınıfı Hakkında...

Geliştirdiğimiz uygulamalar içerisinde belirli aralıklarla sürekli çalışmasını istediğimiz işler olabiliyor. Bu durumda genellikle Quartz ya da aynı işi kullanan bir başka yazılım/kütüphane kullanıyoruz. Çoğu zaman da etkin bir şekilde görev yerine getiriliyor.

Java'nın Timer ve TimerTask sınıflarını kullanarak da bu işi gerçekleştirmek mümkün. Elbette Quartz ve benzeri yazılımlar bu konuda çok ilerlemiş durumda ve muhtemelen işinizi halletmek için bu yazılımlardan birini kullanmalısınız. Bu örnek tamamen öğrenme amaçlı. :)

24.06.2020

Sinerji

Sinerji derken, Gora'da Engin Günaydın'ın bahsettiği sinerjiden bahsetmiyorum. Klavye ve farenizi birden fazla bilgisayarda kullanmanızı sağlayan Synergy'den bahsediyorum. Symless tarafından geliştirilen yazılım klavye ve farenizi paylaştırmak istediğiniz iki bilgisayara da kuruluyor.Yazılımı bir bilgisayarda server (sunucu) diğerinde client (istemci) olarak ayarlıyorsunuz. Ekranlarınızı masanızın üzerinde durdukları şekliyle yerleştiriyorsunuz ve klavyenizle fareniz iki bilgisayarda da çalışıyor. Üstelik clipboard da paylaşabiliyorsunuz. Bundan kopyalayayım. Hop! Öbürüne yapıştırayım. Prayslıs.


Geçtiğimiz aylarda, kullandığım PC'nin bana ayar vermesini de göz önüne alarak bazı işlerimi Canavar'a taşıdım. Aldığım cihazın tek bir monitör çıkışı var. Ben ise masamın her yeri monitör dolu olsun istiyorum. Öyle seviyorum. Beni yargılamayın. Şimdi hem tüm monitörlerimi kullanabiliyorum hem de iki bilgisayar arasında geçiş inanılmaz kolaylaşmış durumda.

24.05.2020

Express, Passport, Oauth, Google

Herkese merhaba, size bayram şekeri tadında bir yazı hazırlamaya çalıştım. :) Birlikte Express ile Passport kullanarak Google OAuth örneği yapacağız.



Genelde akış aşağı yukarı şöyle olmalı:

  • Kullanıcı login linkine tıklar
  • Kullanıcı kimliğini doğrulamak üzere Google'a yönlendirilir
  • Google doğrulanan kullanıcı bilgisi ile verdiğimiz URL'e yönlendirme yapar.
  • Uygulamada kullanıcı kayıt ya da giriş işlemleri tamamlanır.
Biz işi basitleştirmek için kullanıcının login linkine tıkladığını varsayacak ve doğrudan http://localhost:3000/auth adresine gideceğiz. Kullanıcı kayıt/giriş işlemi yapmak yerine de Google'dan aldığımız e-posta ve isim bilgisini ekranda göstereceğiz. 

30.04.2020

Bazı Yakışıklı JavaScript Array Metodları

Javascript çok yaygın kullanılmakla beraber yazılımcıların çokça şikayet ettiği bir dil. Bu sıralar bir proje ile ilgili kod gözden geçirir ve doküman yazarken karşılaştığım / hatırladığım ufak tefek şeyler ile ilgili olarak buraya kısa yazılar bırakacağım. Bir seri gibi olmayacak. Aklıma geldikçe düştüğüm notlar olarak düşünebilirsiniz. Çoğu Javascript, Java, SQL ile ilgili olur diye düşünüyorum. İlgilenenlere şimdiden iyi okumalar.

Javascript'in Array işlemleri için kullanılan metodları oldukça kullanışlı. Bazılarının isimleri biraz kafa karıştırıcı gelebilir ancak alışınca insan çok mutlu oluyor.

Pushpop ve shift'ten bahsedelim istiyorum. Tabi shift'ten bahsederken "Stack" ve "Queue" veri yapılarından bahsetmek enqueue, dequeue kavramlarını hatırlamak lazım.

Stack: son giren ilk çıkar, Queue ise ilk giren ilk çıkar prensibine göre hareket edilen veri yapıları. Enqueue ve Dequeue kavramları da tahmin edebileceğiniz gibi Queue yapısına veri ekleyip çıkarmak için kullanılan kavramlar. C++, Java gibi dillerde native desteklenen bu veri yapılarının Javascript içinde built-in implementasyonları yok.

Array'inize bir eleman push ettiğiniz de array'in sonuna eklemiş; pop ettiğinizde ise son elemanı Array'den çıkarmış olur ve Array'inizi bir Stack olarak kullanmış olursunuz.

Array'inize bir eleman push ettiğiniz de array'in sonuna eklemiş; shift ettiğinizde ise ilk elemanı Array'den çıkarmış olur ve Array'inizi bir Queue olarak kullanmış olursunuz.

Şöyle Örnekleyelim:


Bir de unshift metodu var. Bu metodla da Array'inizin başına eleman ekleyebilirsiniz.

Esen kalın.

29.04.2020

FRP&MAGIC

Yıl 1999. Hayat çok farklı. İnsanlar çok farklı. Benim hayatımda FRP diye bir şey var. Bir grup aklı başında olduğu şüpheli yaşıtımla gece demeden gündüz demeden bir masanın başına toplanıp; kağıt, kalem, zar filan oturup rol yapma oyunu oynuyoruz. Öyle günlerdi işte.

AD&D meşhurdu. Başka şeyler de oynanırdı ama biz AD&D oynardık. Gecenin bir vakti o masanın üstünü konuyu bilmeyen birisi görse oyun oynadığınıza çok zor inandırırsınız. :D Düşünsenize tütsüler yakılmış. Garip biçimli mumluklarda mumlar yanıyor. Üzerinde yaratık resimleri olan kitaplar, kağıtlar. Gözleri kan çanağı bir grup genç sigara dumanı içinde oturuyor.

Kapalı alanlarda sigara içiliyordu o zaman. Hava soğuksa pencere filan da açılmazdı. Dağılırken kapıyı açınca, insanlardan önce blok halinde duman terkederdi binayı. :)

FRP&Magic dergisi o zaman çıkmıştı işte. Kapağı da şöyleydi:

28.04.2020

ES6 ile Destructuring


2015 yılında çıkan EcmaScript 2015 çeşitli isimlerle anılıyor. EcmaScript 6 ya da Javascript 6 diyen de var ES6 kısaltması ile yetinen de. Hepsi güzel hepsi iyi. :)

ES6 ile gelen bir çok özellik var. Bunlardan eğlenceli bir tanesi de Destructuring. Nedir bu Destructuring derseniz: Budur.

Aşağıdaki kod parçacığında da görebileceğiniz gibi array işlemlerinde oldukça kolaylık sağlıyor.


Array içindeki elemanların yerini değiştirmek için iki farklı kod parçacığı görüyorsunuz. Sizce de ikincisi daha temiz değil mi?

Kullanalım. Kullandıralım.

Esen kalın.

Yine Dutluk Olmuş Buralar

Üç Buçuk yıl nedir yahu! Nasıl ihmal etmişim buraları. Okuyan varsa bile terk edeli çok olmuştur diye düşünüyorum. :)

Bugün bakmak aklıma geldi. Daha doğrusu bir blogum olduğu aklıma geldi. :) Kısa ve içeriği çok parlak olmayan yazılarla yeni bir başlangıç deneyeyim dedim.

Tabi ölü linkleri ayıklamakla başlamak gerekti. Hepsini ayıklayamadıysam karşılaştıklarınızı yazın bana lütfen.

Sonra HTTPS'i etkinleştirmek gerekti. Eski tabi burası ilgilenmeyince öyle kalıyor. Google bu işleri çok kolaylaştırmış. İki tık tık bir şık şık, hoop SSL hazır. Sevinmedim diyemem. :)

Etrafı biraz topladık postunu burada bitiriyorum. Birazdan ufak bir JavaScript postu da atayım. Ortalık kalabalık görünsün.

Esen kalın.