MongoDB Remote Bağlantı Sağlamak

Merhaba, MongoDB ye uzaktan bağlantı ihtiyacı duyabilirsiniz. Fazla önermesem de eğer herkese açık olmasını istiyorsanız yapmanız gereken mongodb conf dosyasını güncellemek olacak.

/etc/mongod.conf

dosya içerisinde;

bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.

Yazan yeri bulup, başına # koyarsanız tüm bağlantılara açık hale gelir. Tekrar pasifleştirmek için başında ki # işaretini kaldırmanız yeterli olacaktır

Kalıcı Alias Ekleme

Merhaba terminal üzerinde bazen kestirmelere ihtiyacımız oluyor.
~/.bashrc

dosyası varsa içine yoksa yeni bir tane nano ~/.bashrc şeklinde oluşturabilirsiniz.

İçine yapacağınız tanımlamaları da aşağıda ki gibi yapabilirsiniz;

alias ll='ls -l'
alias rm='rm -i'

Syntax ve boşluklara lütfen dikkat ederek yapalım. Takıldığınız bir alan olursa yorum olarak sorabilirsiniz.

Eğer her terminali açtığınızda aliaslarınız tekrar tanımlama ihtiyacı duyuyorsanızi;

if [ -n "$BASH_VERSION" ] && [ -f $HOME/.bashrc ];then
    source $HOME/.bashrc
fi

.bash_profile dosyasının içine veya .profile dosyasının içerisine yukarıda ki kod bloğunu yerleştirmelisiniz.

Uyarı: Eğer terminal için oh my zsh gibi farklı çekirdekler kullanıyorsanız, lütfen alias tanımlamalarını da bunu göz önünde alarak yapın. Yoksa geçerliliği olmayabilir.

Oh my zsh için ~/.zshrc dosyasını güncellemeniz ve alias tanımlamalarınızı bu alana yapmanız yeterli olacaktır.

Angular sayfalar arası data aktarımı

Merhaba, Angular da sayfalar arası bir çok farlı data aktarma methodları var. Bunlar arasından url’ye yansımayan ve en çok kullandığım methodu paylaşacağım;

this.router.navigate(['pageUrl'], { state: { example: 'bar' } });
constructor(private router: Router) {
  console.log(this.router.getCurrentNavigation().extras.state.example); // should log out 'bar'
}

SCP ile Server üzerinden bir başka server’a dosya transferi ( Terminal kullanarak )

Merhaba, bazen server üzerinde ki hızı kullanarak başka bir server a dosya transfer etme ihtiyacı duyabilirsiniz.

Zip, tar.gz gibi sıkıştırma methodlarını kullanarak, download upload ettirebilirsiniz. Ben bugün daha pratik bulduğum SCP methodunu göstermek istiyorum.

Örnek bir komut;

scp -P 80 /path/to/local-file ssh-username@your-host:/path/to/destination

-P ile port belirleyebilirsiniz.

-r komutu ile de recursive dosya gönderim işlemlerinizi sağlayabilirsiniz.

Responsive Zoom Media Screen Problemi

Frontend çalışmaları yaparken responsive tasarım yapmaya dikkat ederiz ve bazen zoom out veya zoom in browser üzerinden yapıp tasarımı test ederiz? 🙂

Bildiğiniz üzere css tarafında farklı ölçekli cihazlar için @media etiketini kullanırız.

Yaptığım bir araştırmaya göre zoom in veya zoom out browser üzerinden yaptığınız zaman sayfa gördüğünüz gibi screen sizeları değişmiyor.

Veriler gösteriyor ki %175 zoom oranın da ekran çözünürlüğü 732px. Bu sonuçlar da durumu ispatlar nitelikte.

Farklı cihazlarda test için tarayıcınızın inspect (incele) bölümünden farklı çözünürlükler için denemelerinizi yapabilirsiniz.

SASS @content Kullanımı

Responsive tasarım yaparken yazılan kodları kısaltmak amacıyla ve responsive kodlarını oluştururken çok kolaylık sağlayan bir yapıdan bahsetmek istiyorum.

@mixin desktop {
@media only screen and (max-width: 1440px) and ( min-width: 1200px ){
@content
}
}

Yukarıda ki oluşturduğumuz yapıyı kullanabilmemiz için de;

html {
font-family: 'Gilroy', sans-serif;
@include desktop {
display: none;
}
}

@include içerisinde yazdığımız her yeni bir kod bloğu @content olarak @mixin içerisinde kullanabiliyoruz.

Responsive kod için sayfaları tekrardan derlerken ciddi anlamda pratiklik sağlıyor. Umarım sizinde işinize yarar, bol kodlamalı günler 🙂

PhpStorm SASS (SCSS) FileWatcher ile CSS Çevirmek

Merhaba, front end geliştirme yaparken bazen sass dosyalarının css’e otomatik olarak derleme ihtiyacı duyabilirsiniz.

Bunun için settings > file watcher

Bu bölümün altından yeni ekleye bastıktan sonra, cihazınızda sass ın kurulu olduğundan ve ayarlarda doğru path’i verdiğinizden emin olmalısınız.

Arguments yazan alana;

$FileName$:$ProjectFileDir$/assets/css/$FileNameWithoutExtension$.css

Outputs Path yazan alanada;

$ProjectFileDir$/assets/css/$FileNameWithoutExtension$.css

Daha iyi anlaşılabilmesi için bende ki ayarların bir ekran görüntüsünü paylaşıyorum belki sizede bir faydası olur.

Php Storm File Watcher

Mobil Uygulama Geliştirme (Native & Hybrid )

Merhaba,

Mobil uygulama geliştirmek için uygulayabileceğiniz farklı methodlar var. Uygulamanın ihtiyacına göre bu tercihi yapabilirsiniz. Native ve Hybrid uygulamalar.

Kısaca bu terimleri açıklamak istiyorum;

Native Uygulama dediğimiz de klasik android ve ios ve diğer platformlar için ayrı ayrı native dillerde ( java, swift ) gibi geliştirmekten bahsediyorum.

Her bir platforma geliştirme yapmak için ayrı ayrı zaman ve maaliyet olarak geliştirilen klasik modele native uygulama geliştirme diyoruz.

Peki nedir bu hybrid uygulamalar. Hybrid uygulamada tek kod çok platform mantığı var.

Burada dediğim gibi ihtiyaca göre tamamen kararı vermek size ait. Eğer çok kapsamlı grafikler ve telefon gücüne ihtiyacınız olacaksa native yazmanızda fayda var.

Şuan ki geldiğimiz teknolojik imkanlar ile birlikte hybrid uygulamalar farklı bir boyut kazanmış durumda. Sorun şu ki çoğu kişi webview uygulama ile hybrid uygulamaları birbiri ile çok karıştırıyor.

Webview içinde uygulamayı açmak ve çalıştırmak klasik mobil uyumlu bir responsive tasarımı çalıştırmak demektir. Fakat bizim istediğimiz ve ihtiyaçlarımızı karşılayacak olan çözüm bu değil, en azından hybrid uygulama geliştirirken beklentiler farklı yönde.

Siz bir uygulama geliştiriyorsanız, yeri geldiğinde o kullanıcıya bildirim gönderebilmeli. SMS kutusuna, rehberine veya location bilgilerini almaya ihtiyaç duyabilirsiniz. İşte ayrım tam olarak burada başlıyor.

Hybrid uygulamaların mantığında da webview çalışıyor fakat native özelliklere erişmemize de olanak sağlanıyor.

Hybrid uygulama geliştireceklere en büyük tavsiyem IONIC olacaktır. Ionic 1, ionic 3 ve son çıkan ionic 4 ile birlikte geliştirme ortamları farklılaşmış durumda. Eskiden sadece angular js ile geliştirme yapabiliyorken şuan artık vue js mobil uygulama geliştirme, react mobil uygulama geliştirme gibi bir çok dilde destek geldi.

Ionic ile birlikte kullanıcıların telefonun native özelliklerini de kullanmasını sağlayabiliyorsunuz. Mantığında HTML ve CSS çalıştırdığı için web ortamından fazla uzaklaşmıyorsunuz ama mobil uygulama geliştirmiş oluyorsunuz 🙂

Blog sitemde Ionic, Angular JS ile alakalı derslere de yer vermeyi düşünüyorum.

Özet olarak, hybrid uygulamalar şuan günümüzde bir çok ihtiyaca yanıt verir durumda ve bunları oldukça hızlı geliştiriyor. Az maliyete, tek geliştirme ile mükemmel hız kazandırıyor. Teknoloji ile uyum içinde ilerlemek yeniliklere açık olmak size avantaj olarak dönüyor.

PHP Hata Yakalama ( Try – Catch Kullanımı )

Php ile Hata yakalamayı projelerimizde bir çok farklı amaç için kullanabiliriz. Örneğin yakaladığımız hataları bir mail adresine veya telefona gönderebiliriz.

Bundan daha önemlisi, yaptığınız uygulamanın FATAL ERROR vermemesi bizler için önemli. Bir hata olsa dahi yazdığımız kodların çalışmasını isteriz.

Bunun için PHP’de try catch methodunu kullanarak, sayfada ki hataları yakalayıp kontrol altına alabiliriz.

 

https://youtu.be/HH5Xr7dmCqs

class customError extends Exception{
function myErrorFunction(){
echo $this->getMessage();
}
}

function controlAge( $age ){
if( $age < 18 ){ //throw new Exception("Malesef, 18 yaşından küçüksün.".PHP_EOL); throw new customError(" Sen daha çok küçüksün yavrucum". PHP_EOL); } } try{ controlAge( 17 ); }catch( customError $e ){ $e->myErrorFunction();
}finally{
echo "finish ".PHP_EOL;
}

 

Substr PHP Fonksiyonunda Karakter Sorunu

Php ile string işlemlerinde substr fonksiyonuna ihtiyaç duyduğumuz zamanlar oluyor. Geçen bir proje de çalışırken karakter sorunu ile karşı karşıya kaldım. Aynı sorunu yaşayanlar var ise çözümü paylaşayım belki bir faydası olur 🙂

substr fonksiyonu yerine mb_substr fonksiyonunu kullanacağız.

 

mb_substr fonksiyonunun kullanımı;

mb_substr($string, 0, 5, “utf-8”);

 

Bir başka yazıda görüşmek üzere…