Monthly Archives

Mayıs 2015

Genel, Git/Github/Bitbucket

Git Kullanım Kılavuzu (Türkçe)

Git Nedir?

  • Proje geliştirirken, kodlarımızı bir klasörde yedekliyoruz. Ancak yedekler çoğaldıkça hem yedekler karışmaya başlıyor hem de alanımız azalıyor. Bu problemleri çözmeye yarayan yardımcı programlar var. Bunlar bizim çalışmalarımızın yedeğini bizim yerimize alarak hem yerden, zamandan hem de kargaşadan tasarruf etmemizi sağlıyor. Bu araçlara sürüm kontrol sistemleri ya da versiyon kontrol sistemleri deniyor.
  • Projemiz ya da herhangi bir klasör üzerinde yapılan değişiklikleri zamanları, kullanıcı bilgisi, versiyon numarası gibi bilgilerle birlikte tutuyorlar.
  • Projenin yayına çıkacak kısmının beklemesini istiyorsak ve üzerinde de bir şeyler denemek istiyorsak o zaman çalışan kopyamız belli bir dallanmayla (branching) ayrılarak diğer kopyalar üzerinde rahatça çalışmamız sağlanıyor.İstersek bu kopyayı çalışabilir durumdaki kopya ile birleştirebiliyoruz.
  • Grup halinde çalışmalarda herkesin yaptığı değişiklikleri görebiliyoruz.
  • Git dağıtık bir yapı kullanıyor.Diğer versiyon kontrol sistemleri merkezi bir yapı kullanırken ve bu yapıya sürekli bağlı olmak gerekirken git’te her kullanıcıda bütün bir kopya mevcuttur ve internet olmayan ortamlarda dahi proje geliştirilmeye devam edilebiliyor.
  • 1.Git gerçekten çok hızlı 2.Git kaynak depoları disk üzerinde çok az yer kaplıyor. 3.Git ile dallanma (branching) ve birleştirme(merging) işlemleri kolay ve hızlı 4.Git offline olarak kullanılabiliyor. 5.Git dağıtık (distributed) olduğu için her bir geliştiricinin makinesinde proje bütün geçmişi ile birlikte tutulabiliyor. İlk başta bunun işlemleri yavaşlattığı ve disk israfı olduğu düşünülebilir. Fakat git’in oldukça etkin algoritmalar kullanması sayesinde bu sorunlar hiç yaşanmıyor.

Git Kurulumu

Git kurulum paketi depoda mevcut.Oradan paketi kuruyoruz.

  • sudo apt-get install git-core

Paketi kurduktan sonra git yapılandırmasına geçiyoruz. (Bu kısmı isterseniz yapmazsınız.Ama buradaki isim ve mail bilgilerini vermediğiniz zaman proje üzerinde commit yaptığınızda, commit mesajlarınızda github kullanıcı adınız değil de commiti yaptığınız bilgisayarın kullanıcı adı görünüyor.)

  • git config - -global user.name “isim,soyisim”
  • git config – -global user.email “email adresi”

(*Bu ayarlar kurulumdan sonra da yapılabiliyor.)

Bilgisayarımız ve Github arasında güvenli bir bağlantı sağlayabilmek için ssh-key kullanmalıyız. Bunun için bilgisayarımızda ssh-key oluşturmamız gerek.Önce var olan bir key var mı diye bakalım.

  • cd ~/.ssh
  • ls # config id_rsa id_rsa.pub known_hosts

Daha önce oluşturulmuş bir key’imiz varsa onu silip yeni oluşturabiliriz.

  • mkdir key_backup
  • cp id_rsa*
  • rm id_rsa*

Yeni bir ssh key oluşturmak için :

  • ssh-keygen

Creates a new ssh key using the provided email

Generating public/private rsa key pair.

Enter file in which to save the key (/home/you/.ssh/id_rsa):

(Karşımıza yukarıdaki kısım geliyor ve onu enter ile geçiyoruz…)

  • Enter passphrase (empty for no passphrase): [Type a passphrase]
  • Enter same passphrase again: [Type passphrase again]

Burada ise bizden, ssh-key oluşturmak için(belli bir algoritma ile oluşturulur) anahtar bir kelime yazmamız isteniyor.

  • our identification has been saved in /home/you/.ssh/id_rsa.
  • Your public key has been saved in /home/you/.ssh/id_rsa.pub.
  • The key fingerprint is:
  • 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected] `

    Buna benzer bir ekran çıktısı aldıysak işlemi doğru tamamlamışız demektir.

  • Şimdi ~/.ssh/id_rsa.pub ‘ da oluşmuş olan ssh-key ‘imizi github’a eklememiz gerekli.
  • Github’ta Account settings’te sol taraftaki add ssh key bölümüne girip oraya ssh keyimizi ekliyoruz.

Sıra geldi github’taki projemizi bilgisayarımıza çekmeye. Git üç ağaç kolu şeklinde çalışıyor diyebiliriz.İlk kısım çalıştığımız dizin,ikinci kısım yereldeki depomuz,diğer kısım ise uzak depodur.Şimdi clone komutu ile uzaktaki projeyi çekeceğiz.


git clone uzak_sunucu_adresi

Git Kullanımı

Depoya Dosya Ekleme

Projemize ilk commit’i yapalım:

Öncelikle depoya eklemek istediğimiz veya daha önce eklenmiş,değişiklik yapılmış dosyayı index denilen git geçici alanına eklemeliyiz.


git add dosya_ismi


Şimdi bu dosyanın geçici alandan alınıp yerel depoya gönderilebilmesi için commit edilmesi gerekli.


git commit -m"commitin içeriğini anlatan mesajımız"


Böylece dosyamız yerel depoya atıldı.Ancak henüz uzak depoya ulaşmadı.Uzak depoya atabilmemiz için ise:


git push origin bulunduğumuz_branch_dalı


  • Bu komut ile beraber yaptığımız değişiklikler uzak depoya gönderilmiş oldu.
    • Bu şekilde proje arkadaşlarımızın yaptığı değişiklikleri kendi yerl depomuza çekmek için ise:

git pull


Dallar (Branches)

Git’te default olarak master dalı gelir.İstersek başka dallar oluşturabiliriz ve silebiliriz.

  • git branch yeni_dal_ismi (yeni dal oluşturmamızı sağlar.)
  • git checkout yeni_dal_ismi (o dala geçmemizi sağlar.)
  • git branch -D branch_adı (dalı siler.)

Birden fazla dalımız varken iki daldaki değişiklikleri birleştirmek için merge komutunu kullanıyoruz.

  • git merge dal_adı

Bu komut ile bulunduğumuz branch, burada ismini verdiğimiz branch ile birleşmiş oluyor. Merge işlemi iki farklı geliştirici ortak değşiklikleri commitlemiş ise çakışmalara yol açabilir.Buna dikkat etmek gerekir.

Dosya Silme

Commitlediğimiz bir dosyayı silmek için :


git rm dosya_adı git push origin bulunduğumuz_dal_ismi (bu adım yapılan her değişikliğin uzak depoya gönderilebilmesi için yapılmalıdır.)


Ancak bu komut ile dosya silinir.Dosyayı geri döndürmek mümkündür.Ve dosya silindikten sonra commit mesajları tutulmaya devam eder.Dosyayı geri döndürme ise dosyanın loglarının tutuluyor olması ile mümkündür.


git revert silinen_dosya_log_id


Son Kayıt İşlemini Değiştirmek

Eğer kaydı çok erken yapmışsanız, bazı dosyaları eklemeyi unutmuşsanız ya da kayıt mesajında hata yapmışsanız, sık rastlanan düzeltme işlemlerinden birini kullanabilirsiniz. Kaydı değiştirmek isterseniz, commit komutunu –amend seçeneğiyle çalıştırabilirsiniz:

$ git commit --amend

Bu komut, hazırlık alanındaki değişiklikleri alıp bunları kaydı değiştirmek için kullanır. Eğer son kaydınızdan beri hiçbir değişiklik yapmamışsanız o zaman kaydınızın bellek kopyası aynı kalacak ve değiştireceğiniz tek şey kayıt mesajı olacaktır.

Kayda Hazırlanmış Bir Dosyayı Hazırlık Alanından Kaldırmak

benchmarks.rb dosyasını bu öneriye uygun olarak hazırlık alanından kaldıralım:



“benchmarks.rb” dosyası hazırlık alanından kaldırıldı ama hâlâ değişmiş olarak görünüyor.

Değişmiş Durumdaki Bir Dosyayı Değişmemiş Duruma Geri Getirmek



Gördüğünüz gibi değişiklikler çöpe atıldı. Bunun tehlikeli bir komut olduğunu aklınızdan çıkarmayın: o dosyaya yaptığınız bütün değişiklikler şimdi yok oldu.

Tüm Kayıttan Bir Dosyayı Kaldırma



“passwords.txt” adlı dosyayı tüm geçmişten kaldırmak için filter-branch seçeneği olan “–tree-filter” kullanılabilir.

Git’de Eski Sürüme Geri Dönme



Bu çıktıları gördükten sonra biz “Nov 3” deki eski sürüme dönmek isteyelim. Yapmamız gereken adımlar şunlardır:

ya da eğer geri döndüğümüzde commit yapmak istiyorsak, oraya gidip yeni bir dal oluşturmamız gerekir ki bunun için gereken komut:

Öte yandan, eğer o zamana kadar yaptığımız her şeyden kurtulmak istiyorsak iki olasılık vardır. Birincisi; eğer henüz commit yayınlamadıysak, sıfırlamak basitçe:

Öte yandan, eğer çalışması yayımlandıysa, dalın sıfırlanmasını istemezsin. Bu durumda gerçekte de commit’i eski haline döndürebilirsin. Git ile, geri dönme işleminin (revert)çok özel bir anlamı vardır: bu durumu dengelemek için ters bir düzeltmeyle yeni bir commit oluşturun. Bu şekilde yeniden bir tarih yazmamış oluruz.

CodeIgniter

Querying MySQL with CodeIgniter, selecting rows where field is NULL

Merhaba Arkadaşlar,

Başlıktada belirttiğim gibi codeigniter’da birçok arkadaşımız şu soruna yakalanıyor $this->db->where(“username !=”,””); bu şekilde boş değilse yapmaya çalışıyorlar yada value kısmına tırnakları çıkartıp null yada false gibi şeyler koyuyorlar ama çözümü için çok uğraşıyorlar bunun yöntemi ise çok basittir.

 

Tırnakları çıkarmadan NULL dersek eğer sonuca ulaşmış olacağız hemen deneyelim.

$this->db->where(“username !=”,”NULL”);

Yukarıdaki gibi bir kod olumlu sonuç çıkartacaktır.

Genel

PHP Framework 2015 – Top 10

2015 yılında framework’ler yer almaya hızla devam ediyor ve herkese göre özelleştirmeler ile hızı maksimum çıkartmaya ve tüketim bakımından minimuma indirmeye çalışan firmalar arasında ilk 10 framework’ü görebilirsiniz. Tabi beni bu tablolarda üzen durum laravel 5.0’ın en sonda olması zamanında dalga geçtiğimiz codeigniter bile şuanda 2 sırada olduğu için gerçekten kendimi kötü hissettim diyebilirim adamların çalışarak çok iyi yerlere gelebileceğini düşünmezdim çünkü belli bir zaman sonra geliştirmeleri bırakmışlardı. Bu yüzdende çok iyi bir başarı yakaladıklarını görebiliriz ve hak ettiklerinide düşünüyorum açıkçası neyse fazla uzatmayalım aşağıda tablolarımızda görebilirsiniz.

İstek ve Saniye Bakımından;

request_per_sec

 

Bellek Tüketimi Bakımından;

memory

MySQL

The storage engine for the table doesn’t support r (Hatasının Çözümü)

Merhaba Arkadaşlar,

Sizlerde bildiğiniz üzere karşılaştığım birçok hatayı çözdüğümde paylaşma gereksinimi duyuyorum sizlere hem türkçe kaynak hemde benim için sonraki hatalarımda ilk arayacağım yer kendi bloğum olması açısından arşivlemeye çalışmaktayım.

Öncelikle bu hatayı neden aldığımızı açıklayalım veritabanımızda tablolarımızın türü yazar listelediğimizde onlar “InnoDB” ise verir bunların ne olması gerekir derseniz “MyISAM” olarak ayarlanması gerekir peki bunu nasıl yapıyoruz ona gelelim şimdi tablomuzun ismi örnek olarak “uyeler” olsun bu uyeler tablosu için bir SQL komutu çalıştıracağız phpMyAdmin’de bulunan yukarıki bölümdek sekmelerden SQL’e tıklayınız ve ardından oraya şunları yazınız.

ALTER TABLE uyeler ENGINE = MyISAM;

Yukarıdaki kodu SQL bölümünde çalıştırdığımızda tablomuzun türü MyISAM olarak değişmiş olduğunu göreceğiz eğer bir hata almaz isek hata alırsanız yorum kısmından benimle irtibat kurabilirsiniz gerekli incelemeleri yapıp sizlere çözüm üretebilirim.  Daha sonrasında “uyeler” tablosunu onarmak istediğimizde başarılı olduğunu göreceğiz.

Genel

Beşiktaş Taraftarı Olmanın Bize Getirdikleri!!!

1. Kalbine aşırı dozda beşiktaş aşkı pompalar:

2. Tek gerçeği siyah beyaz kabullenir:

besiktas

3. En olumsuz durumda bile takıma desteği bir an olsun bile esirgemez:

tribün

4. Yeri geldiğinde maya takvimi ile dalga geçer:

maya-takvimi-carsi-taraftari

5. Küçüklükten bulaşır ve tadavisi yoktur:

6. Normal insanlar gibi sevinme yetisini kaybeder:

7. Senkronize sistem ederler:

8. Asla takım değiştirmezler:

9. Rahat galibiyet haram kılınmıştır:

Screenshot_1

10. Ecelleri ile öleceklerine inanmazlar:

Genel

Satılık Hititbet / Betorder Botu

Merhaba Arkadaşlar,

Hititbet üzerinden maç çekmek isteyen kişiler için uygun fiyatlara botlar sağlıyorum, iletişim için lütfen skype adresim live:orhanbhr yada [email protected] mail adresimi yada 0506 458 1928 telefon numarasından ulaşabilirsiniz. Sadece botların satışı olmaktadır herhangi bir şekilde bahis siteleri ile alakamız yoktur. Diğer siteler için botlar istediğiniz takdirde 3 iş günü içerisinde yapılarak teslim edilmektedir.

Hepinize teşekkürler, Orhan….