28 Temmuz 2018 Cumartesi

React Context API Kullanımı

Herkese merhaba,
bu yazımda sizlere React Context  API kullanımından bahsedeceğim.  React ile geliştirme yapıyorsanız komponentler arasında parametre taşıma ve değişiklikleri üst/alt komponentlere taşımanın ne kadar kompleks bir durum olduğunu farketmişsinizdir.  Bu durumu aşabilmek için herkes gibi ben de Redux kullanıyordum ve session da tutulması gereken obje/değişkenleri Redux'a atarak ilerliyordum. Global object olarak redux aracılığıyla alt yada üst komponentlere session değerlerini  taşıyordum.

Ancak Redux'ın implementasyonu, ilgili komponentlerle ilişkilendirilmesi, Action ve Action Type ların oluşturulması,..vs açıkçası biraz yorucu olmaktaydı. Çünkü büyük ve kompleks projelerde tree yapısındaki komponentlere hükmetmek pek kolay olmuyordu. Daha ergonomik bir çözüm arayan react geliştiricileri  son dönemde Facebook'un kendisinin bu işe el atarak Context API'yı yayınlamasıyla bir hayli sevindi.

React Context API; sizin komponentler arasında taşımak istediğiniz objeleri bir Provider komponenti oluşturup  bu Provider komponentinin state'inde  tutar.  Alt komponentlerden de yine ContextAPI içinde bulunan  Consumer aracılığıyla erişim imkanı sunar. Sunulan bu yapı sayesinde herhangi bir 3rd entegrasyon yapmadan  komponentleri ortak değişkenlerle ilişkilendirebilirsiniz. Bu ilişkilendirmeyi yaparken Redux ta olduğu gibi Action, ActionType, Container, Reducer tanımlaması yapmanıza da gerek kalmayacaktır.

Sizleri çok fazla yazıya boğmadan şunu belirtmek isterim ki;  buradaki github linkinde Context API kullanımını inceleyip örneklendirdiğim bir proje bulunmaktadır. Bu projeyi inceleyerek Context API ın kullanımını görebilirsiniz.

NOT:  Context API react'ın 16.3 sürümünden sonra eklenmiştir. Belirtilenden daha düşük sürümlerde Context API çalışmayacaktır.

1 Temmuz 2018 Pazar

Ubuntu üzerinde apache mahout kurulumu

Herkese merhaba,
bu yazımda  apache mahout'un  linux makinelere nasıl kurulacağını anlatacağım. Ben direkt olarak mahout'u indirip kuruyorum ancak kaynak koddan derleyip kurmak isteyenler için de aşağıdaki adımlar yol gösterecektir.

NOT : Apache mahout'un çalışabilmesi için Java'nın ve hadoop'un bilgisayarınıza kurulmuş olması gerekir. Öncelikle java ve hadoop'u kurmayı unutmayın.


 Öncelikle repoları güncelleyin
 $ apt-get -y update && apt-get -y upgrade

Downloads dizinine gidin
 $ cd ~/Downloads/

wget komutuyla mahout'u indirin
$ wget http://mirror.stjschools.org/public/apache/mahout/0.13.0/apache-mahout-distribution-0.13.0.tar.gz 

 tar komutuyla indirdiğiniz sıkıştırılmış dosyayı açın
$ tar xzf apache-mahout-distribution-0.13.0.tar.gz 
  
/usr/local dizininin altında mahout klasörünü oluşturun
$ mkdir /usr/local/mahout 

oluşturduğunuz dizine yazma ve çalıştırma izni vermek için aşağıdaki komutu çalıştırın
$ chmod -R 755 /usr/local/mahout 


 sıkıştırılış olarak indirip açtığınız dosyaları  yeni oluşturduğunuz dizine taşıyın
$ mv apache-mahout-distribution-0.13.0/* /usr/local/mahout 


 taşıma işleminden sonra mahout dizinine gidin
$ cd /usr/local/mahout/ 
  
 Son adım olarak mahout'u kurduğunuz dizinin  MAHOUT_HOME  değişkenine tanımlamak için aşağıdaki komutu çalıştırın
$ echo "export MAHOUT_HOME=/usr/local/mahout" >> ~/.bashrc
$ echo "export PATH=$MAHOUT_HOME/bin:$PATH" >> ~/.bashrc 


 artık mahout komutuyla apache mahout'u başlatabilirsiniz
 $ mahout



 Kaynak kodu indirerek derlemek isterseniz aşağıdaki adımları takip edin:

 Öncelikle yine işletim sistemini ve  repoları güncelleyin
 $ apt-get -y update && apt-get -y upgrade

kaynak kodu maven ile derleyeceğimiz için maven kurulu değilse kurun 
 $ apt-get -y install maven

kurulumdan sonra maven versiyonuna bakarak kurulumun başarılı olup olmadığını doğrulayabilirsiniz
 $ mvn --version

Downloads dizinine gidin
 $ cd ~/Downloads/
  
wget komutuyla mahout kaynak kodunu indirin
$ wget http://ftp.itu.edu.tr/Mirror/Apache/mahout/0.13.0/apache-mahout-distribution-0.13.0-src.tar.gz 

 tar komutuyla indirdiğiniz sıkıştırılmış kaynak kodu içeren dosyayı açın
$ tar xzf apache-mahout-distribution-0.13.0-src.tar.gz 

/usr/local dizininin altında mahout klasörünü oluşturun
$ mkdir /usr/local/mahout 

oluşturduğunuz dizine yazma ve çalıştırma izni vermek için aşağıdaki komutu çalıştırın
$ chmod -R 755 /usr/local/mahout 

 sıkıştırılış olarak indirip açtığınız dosyaları  yeni oluşturduğunuz dizine taşıyın
$ mv ./apache-mahout-distribution-0.13.0/* /usr/local/mahout/ 

 taşıma işleminden sonra mahout dizinine gidin
$ cd /usr/local/mahout/ 

 maven ile kaynak kodu derlemek için aşağıdaki komutu çalıştırın. Bu işlem bir hayli uzun sürecektir.
mvn clean install -Dtest.skip=true 

 Son adım olarak mahout'u kurduğunuz dizinin  MAHOUT_HOME  değişkenine tanımınlamak için aşağıdaki komutu çalıştırın
echo "export MAHOUT_HOME=/usr/local/mahout" >> ~/.bashrc
echo "export PATH=$MAHOUT_HOME/bin:$PATH" >> ~/.bashrc 

 artık mahout komutuyla apache mahout'u başlatabilirsiniz
 $ mahout