Saturday, February 21, 2015

[Django] Farkli App Icerisindeki Model'leri Ayni Grupta Gosterebilmek

Django admin'de birbiri ile alakali olan iki farkli app'iniz mevcutsa, bu modelleriniz asagidaki gibi gorunecektir:

[App 1]
- Model 1
- Model 2
[App 2]
- Model 3
Ancak siz bu goruntuyu istemiyor, asagidaki gibi bir goruntu istiyorsunuz:
[App 1]
- Model 1
- Model 2
- Model 3 
Hosgeldiniz! Yapilmasi gereken islem, App 2 altinda bulunan Model 3'un Meta sinifinda o modelin app'inin aslinda App 1 oldugunu soylemek. Onu da boyle yapiyoruz:



Onemli Guncelleme:
Bu degisikligin etkileri sandiginizdan daha buyuk olabilir. Bu islem tam anlami ile Django'nun app mimarisindeki app'inizin adinin degistirilmesi anlamina geliyor. Yani varsayilan olarak app'inizin adi olusturulan klasor ayni iken bunun degistirilmis olmasini sagladik. Buna ek olarak Python'un package yapisi yine klasor adi uzerinden calisacaktir.

Bu guncellemeyi yapmama neden olan case, bu app adini degistirdigim zaman bu Model 3'un Model 2'de Foreign key olarak tanimlandigi yerde hata almaya basladim. Bunun sebebi olaraki su tanimlamaydi:


Artik app adimiz 'app_1' olduguna gore buradakini de gistirmek zorundayiz. Bu durumda modelin refresh edilecegini de uzuntuyle belirtmem gerekiyor. :(

Saturday, January 3, 2015

Yazar Olma Sorunsali

Yaklasik bir bucuk sene once buyuk paylasim umutlari ile actigim bloguma ozellikle son bes aydir yazamadigimi fark ettim. Draft olarak birkac paragrafi yazilmis 18 adet yazim bulunmaktaymis. Bunlari sirasiyla tamamlayip daha fazla yazmak niyetindeyim. Yazi yazmak uretkenligimi arttirdigini hatirliyorum. Bunun ustune gidecegim. Hatta yazmanin faydalari da bir konu olarak olabilir! Takipte kalin, degerli gunluk bir tane olan ziyaretcilerim! 21 Subat '14 guncellemesi: (Yazamadi)

Thursday, July 31, 2014

[DevOps][Nginx] fastcgi_pass Problems

If you are getting error about fastcgi_pass option like this:
2014/07/31 08:08:39 [error] 3536#0: *6 connect() failed (111: Connection refused) while connecting to upstream, client: 95.95.95.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost"
or this:
2014/07/31 08:25:07 [crit] 3644#0: *23 connect() to unix:/tmp/php5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 95.95.95.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/tmp/php5-fpm.sock:", host: "localhost"
You have probably setted wrong or passive TCP or socket address. You can learn PHP's TCP or socket addsress from /etc/php5/fpm/pool.d/www.conf file. Check lines that starts with these:
listen = 127.0.0.1:9000 ;listen = /tmp/php5-fpm.sock
Destroy ; char from starting, and have fun! Don't forget to restart your PHP or your another service -- like this $ service php5-fpm restart!

Monday, July 21, 2014

[Vagrant][Nginx][Laravel] Laravel Kurulum Sorunlari

http://laravel-recipes.com/recipes/26 http://laravel.io/forum/05-14-2014-502-bad-gateway-in-vagrant-permission-denied

Friday, July 18, 2014

[Nginx] Konfigurasyon Dosyalarini Test Etmek

Nginx eger site konfigurasyonlarinizi mazeret gostererek service nginx restart komutlariniza kayitsiz kaliyorsa, asadidaki komut ile Nginx konfigurasyon dosyanizi test edip sorunun kaynagina ulasabilirsiniz.
/usr/nginx/sbin/nginx -t -c /etc/nginx/DOSYA.conf

Wednesday, May 14, 2014

[Git] GitHub Sifresini Kaydetmek

Baslikta her ne kadar GitHub gecse de bu sadece GitHub icin gecerli degil. Bircok Git clientinde durum aynidir. pull, push gibi git sunucunuza baglanmaniz gerektigi islemlerde sizden giris bilgileri istenecektir. Ancak  surekli bilgileri girmek sikici bir hale gelebilir. Tabii bunun adi asla usengeclik olamaz ;)

Onunuzde iki secenek mevcut; gecici olarak cachelemek, kalici olarak saklamak.

Gecici Olarak Cachelemek

$ git config --global credential.helper 'cache --timeout=300'
 Burada 300 yerine saniye bazinda cache suresini girebilirsiniz.

Kalici Olarak Saklamak

$ git config --global credential.helper store
Her iki secenek icin de Git surumunuzun 1.7.9 olmasi gerekli.

Kaynaklar
http://git-scm.com/docs/git-credential-cache
http://wiki.epfl.ch/help-git-en/can-i-store-my-password-for-the-command-line

Wednesday, April 23, 2014

[JavaScript][CoffeeScript] Degisken/Fonksiyon Etki Alanlari

JavaScript'te alisilmisin disinda -PHP'nin disinda!- bir etki alani prensibi mevcut. Ust seviyede tanimlamis oldudugunuz bir degisken ya da fonksiyona asagi seviyelerden ulasabilirsiniz. Alt seviyeden ust seviyeye ise hayir. (Yani bunun yontemleri var ancak konuyla alakali olmadigindan dolayi pas geciyorum.)

Beni bu arastirmaya iten "CoffeeScript'teki -> ile => arasindaki farkin nedenir nedir?" sorusuydu. Sorunun cevabi yukaridaki bilginin varligindan haberi olan kisiler icin gayet net olarak dokumante edilmis CoffeeScript tarafindan. Durumu aciklamaya calisalim:

Peki ya yukaridaki gibi bir kodlamada ust seviyedeki elementi secmek istersek? Ki buyuk ihtimalle oyle bir seye ihtiyaciiz olacaktir. Oyleyse asagidaki gibi yapip baska bir degiskene atamak gerekli, referans gosterip elbette.

Islem bu kadar. Simdi gelelim bunun CoffeeScript ile olan iliskisine:

CoffeeScript ile calisiyorken nesne tabanli calismak zorunda hissediyorsunuz kendinizi, "class" etiketini gordukten sonra, ehehe. Elbette boyle bir durumda this kelimesi sizin icin gerekli oluyor, gerci bu ornekte sinif tanimlanmiyor ancak yine de ilintili. Lafi da  fazla uzatmadan CoffeeScript'in kendi ornegi uzerinden olayi aciklamak istiyorum:

Sorun kendini bellli ettigine gore cozumune de asagidan ulasabilirsiniz:

Bu kadar... :)