15 Nisan 2017 Cumartesi

GİTHUB


Github Nedir ve Ne İşe Yarar?

GitHub, yapacağımız ve daha yapım aşamasında olduğumuz veya geliştirmekte olduğumuz bir projeye tanıdığımız veya tanımadığımız farklı şahısların projeye destek vermelerini ve projeye dahil olmalarını sağlamak amacıyla kurulan bir proje yönetim sistemidir.


GitHub sayesinde dünyanın çeşitli ülkelerinden, bu ülkelerin çeşitli yerlerinden projenize farklı kişiler ekleyerek bir takım çalışması yapabilirsiniz. Bir ekip çalışmasında hangi şahısların projenin hangi konumunda yer alacağını, kabiliyetlerine göre onlara projenin bölümlerinde görevler verebilir, yaptığı çalışmaları inceleyebilir ve kimlerin projede ne kadar süre çalıştığını görerek, inceleyerek çeşitli analizler yapmak imkanına kavuşabilirsiniz. Böylece projede görev takibini ve yetkilendirmeyi rahatça yapabilirsiniz.

GitHub platformu içindeki açık kaynak olarak çalışan projelere iştirak ederek bilginizi ve tecrübenizi artırabilir, internette kod üzerinde tartışabilir ve aynı zamanda projelere de katkıda bulunabilirsiniz.


GitHup'ta açık kayanak çalışan bir yazılım projesinde, yazdığınız kodlar hakkında müspet veya menfi yorumlar alarak kendinizi geliştirme imkanına kavuşabilirsiniz. GitHub üzerinde barındırılan açık kaynak projelerinde kod incelemeleri yapabilirsiniz.
GitHub daki bir projeye dahil olmak veya Githup da kendi projenizi barındırmak için yapmanız gereken ilk şey, ücretsiz bir kullanıcı hesabı oluşturmaktır. Bunun için de; https://githup.com adresine girerek alınmış olmayan bir kullanıcı hesabı , e-posta adresi ve şifre ile GtHub’a kaydınızı yaptırıyorsunuz.
Daha sonrada dahil olmak istediğimiz projeyi veya kod yazacağımız yazılım dilini arama kutusuna girerek işe başlayabilirsiniz.


Günümüzün en popüler sürüm kontrol sistemi olan Git ve Github ile proje yönetimi artık çok kolay. Git ve Github kullanarak geliştirdiğiniz bir projeye farklı konumlardan farklı kişiler ekleyebilir, onlara görevler atayabilir ve yaptıkları işleri kontrol edebilirsiniz.

Takım çalışması ve bireysel çalışmalarda etkin bir şekilde kullanılan yeni proje oluşturmak, projeye kişiler eklemek, kişilere görevler atamak, kişilerin analizlerini tutmak, ana projeyi değiştirmeden yeni kodları test etmek için dallar (branch) oluşturmak böylelikle çok daha kolay bir hale geliyor. Versiyon kontrollerini yapmak için release işlemlerini anlamak ve bir versiyon çıktığımızda, örneğin 1.0.0 ve çok fazla versiyon çıkıyorsak, bir süre sonra istediğimiz bir versiyona dönüp ordaki dosyada ve kodlarda değişiklikler yapabilir veya istediğiniz kod güncellemelerini de pratik bir şekilde yapabiliriz.

Yazılım Ekibinizi Daha Kolay Yönetin

Tüm büyük projelerde kullanılan Github ile, sizler de açık kaynak veya kapalı kaynak olarak ekibinizin ve projenizin yönetimini çok rahat yapabilirsiniz. 

Sisteminize Git indirerek dilerseniz masaüstü uygulamasından veya bilgisayarınızın konsolundan projenizi yönetebilir, kimlerin ne kadar kodlama yaptığı, ne kadar süre çalıştığı, ne kadar commit (görev sonrası açıklama) mesajı yazdığı gibi tüm detayları yönetebileceğiniz eşsiz bir web platformudur. 

Github içinde bulunan açık kaynak çalışılan projelere (Pull request) yaparak projeye katılabilirsiniz. 



Katkıda Bulunacağınız Projeler ve Kodlar

Peki, "Katkıda bulunacağım projeler ve kodlar nerde?" derseniz eğer, Github’ın arama kutucuğunda ilgilendiğiniz yazılım dili bile aramanız yeterli. Sonrasında projenin kodlarına, dökümantasyonuna, açıklama satırlarına veya o projede eksik gördüğünüz bir yerde, kendinize bir ISSUE yani görev atayarak ekleme yapabilir ve yardım ederek hem kendinizi geliştirebilir, hem de açık kaynak bir projede yer almış olursunuz. 

Kendinizi ve Kalitenizi Test Edin

Github kullanarak kendi kodlarınızın ne kadar kaliteli olup olmadığını da ordaki eleştiriler ve tartışmalar doğrultusunda anlayabilir ve böylelikle kendinizi geliştirebilirsiniz. Kodlarınızı eleştirmelerine izin verin. Kodlarınız için yapilan yorumlar, yazılımı dünyasında ilerlemeniz ve tecrübe kazanmanız içindir. Ama göze almanız gereken bir gerçek var: O da kodlarınızı acımasızca eleştirirler :) 

En basit bir olay; yazılım dilllerinde bulunan syntax’lar için sayfalarca tartışma grupları oluşturulur ve üstüne yorumlar yapılır. Sadece o yazıları okumak bile sizi inanılmaz geliştirebilir. 

"Yazdığım kodları herkes görecek" diye çekinmenize gerek yok. Yaptığınız en ufak dökümantasyon çalışması, en ufak kod parçası, dökümantasyon çevirileri bile GitHub hesabınızda bulunsun ve buna hemen şimdi başlayın. Nasıl mı? Günde sadece yarım saatinizi ayırarak yukarıda anlattığım maddeleri yaparak başlayabilirsiniz. 

En güzel özelliklerden biri ise Git takvimi. Oraya bir hatırlatma koyarak şu projeye kod ekle, test yaz, issue aç, bug bul, dökümantasyon düzenle gibi imkanları kullanabilirsiniz. Yararlı hissettiğiniz ve eksikliğini gördüğünüz dökümanları çevirmek de olabilir. 

Bu şekilde başlayarak güzel bir başlangıç yapabilirsiniz ve bir süre sonra projelerde isminiz geçmeye başlar, ki bu da sizin için çok ciddi ve prestiji yüksek bir CV sahibi olmanızı sağlar. İşte benim kodlarım burada diyebilirsiniz. 

Bu böyle uzar gider. Son olarak naçizane önerim ise teknik bir konuda düzenli olarak ve kaliteli bilgileri ekleyerek blog tutmanız. Hala yoksa hemen şimdi ya kendi blogunuzu yazın veya bir blog alıp yazmaya başlayın :) 

Fakat hala "Github ne işe yarar dostum?" diyenlere kısacası diyorum ki, "Github Yazılım geliştiricilerin, yazılım dünyasının Facebook’u Linkedin’i Twitter’ı" diyebilirim ve orda olman gerek :) 


Alıntıdır: http://sanalkurs.net/github-nedir-ve-nasil-isler-8753.html

12 Nisan 2017 Çarşamba

cpp iomanip kütüphanesi c++ #include



<iomanip> Kütüphanesi


Merhaba,


<iomanip> kütüphanesi C++ da akışların yani Giriş/Çıkış (İnput/Output) birimlerinin belirli formatlarda yazdırma fonksiyonlarını içeren bir kütüphanedir.


<iomanip> kütüphanesinde birçok fonksiyon vardır. Bunlar:

setw()-width()

setfill()

setprecision()

setbase() - resetiosflags()

setf() - unsutf()

setiosflags()


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

setw() Fonksiyonu


Girilen herhangi bir değişken için ayrılacak olan karakter genişliğini belirlemeye yarayan bir <iomanip> kütüphanesi fonksiyonudur. Diğer bir kullanım şekli ise “width()” şeklindedir.


Örnek:


Kod:

#include<iostream>

#include<iomanip>

using namespace std;

int main()

{

int sayi= 234;

cout<<setw(9)<<sayi<<endl;

cout<<setw(6)<<sayi <<endl;

cout<<setw(3)<<sayi <<endl;

return 0;

}

Çıktı:


- - - - - 234

- - - 234

234




setfill() Fonksiyonu


<iomanip> kütüphanesine ait formatlı yazdırma komutudur.Bu komutla bıraktığımız boşlukları verilen herhangi bir karakterle doldurmamızı sağlayan fonksiyondur.



Kod:


#include<iostream>

#include<iomanip>

using namespace std;

int main()

{

int sayi= 234;

cout<<setfill('*')<<setw(9)<<sayi<<endl;

cout<<setfill('*')<<setw(6)<<sayi <<endl;

cout<<setfill('*')<<setw(4)<<sayi <<endl;

return 0;

}

Çıktı:


* * * * * * 234

* * * 234

* 234



Setprecision() Fonksiyonu


Girilen ondalıklı sayıları formatlı bir şekilde ve noktadan sonraki duyarlılığı belirlemek için kullanılan bir <iomanip> fonksiyondur.



Kod:


#include<iostream>

#include<iomanip>

using namespace std;

int main()

{

double sayi= 22.70964345;

cout<<setprecision(5)<<sayi<<endl;

cout<<setprecision(7)<<sayi <<endl;

cout<<setprecision(8)<<sayi <<endl;

return 0;

}


Çıktısı:


22.70964

22. 7096434

22. 70964345


setbase() Fonksiyonu


setbase() fonsiyonu istediğimiz basamağı fonksiyona yazarak kullanılan bir <iomanip> komutudur.Ancak içine 8-10 ve 16 lık basamak değerlerini alır.



Kod:


#include <iostream>

#include <iomanip>

using namespace std;

int main ()

{

cout << setbase (16);

cout << 100 << endl;

return 0;

}

Çıktı:


64


setf() Fonksiyonu


Formatlı yazdırma tekniğinde özelikle sağa dayalı,sola dayalı hangi basamakta yazılacağını ve noktadan sonra kaç hane gösterilmesi gerekiyor diye kavramları belirlemek için kullanılan çok önemli bir fonksiyondur.


//cout.setf ( ios::right, ios::adjustfield); şeklinde kullanılır. Ve kullanımda çeşitli parametreler alabilir.


//adjustfield (left, right), basefield (dec, hex, oct), floatfield (scientific, fixed)




Kod:


#include <iostream>

#include <iomanip>

using namespace std;

int main ()

{

cout<<setw(15) //cout.width(8) diğer bir kullanım şekli

cout.setf ( ios::left);

cout.setf (ios::hex,ios::basefield); // hex(16)lık sistem seçildi

cout.setf ( ios::showbase ); // 0x aktif edildi

cout.fill(‘*');

cout << 200 << endl;

cout.setf ( ios::fixed, ios::noshowbase ); // 0x kaldırıldı

cout << 200 << endl;

return 0;

}


Çıktısı:


0X128 * * * * * * * * * * // cout << 200 << endl;

128 //cout << 200 << endl;




unsetf() Fonksiyonu


Unsetf()” komutu ise adındanda anlaşılacağı gibi “setf()” fonksiyonun tam tersi işleve sahip bir fonksiyondur. Aynı programda setf ile oluşturulan (basefield gibi) seçilen alanın format özelliklerini devre dışı bırakır ve bir önceki ya da doğal halinin görüntülenmesini sağlar.

Kullanımı // cout.unsetf ( ios_base::basefield ); şeklindedir. Bir önceki proğramda kullanılan basefield özelliğini kaldırmamızı sağlar.



Kod:


#include <iostream>

#include <iomanip>

using namespace std;

int main ()

{

cout.setf(ios_base::hex,ios_base::basefield ); //hex(16) sayı basamağı seçildi


cout << 200 << endl;

cout.unsetf (ios_base::basefield ); // onaltılık sayı sistemi geri dönüştürüldü

cout << 200 << endl; ve tekrar standart olan 10 luk sayı

basamağına dönüştürüldü.

return 0;

}


Çıktı:


0X128

200


setiosflags() Fonksiyonu


“setiosflags()” fonksiyonu ile girilen değere showbase-uppercase gibi özeliği vermezi sağlayan bir <iomanip> kütüphanesi fonsiyonudur.



Kod:


#include <iostream>

#include <iomanip>

using namespace std;

int main ()

{

cout << hex << setiosflags ( ios_base::uppercase | ios_base::showbase);

cout << 200 << endl; return 0;

}

Çıktı:


0X128 //cout << hex << setiosflags ( ios_base::uppercase | ios_base::showbase);




resetiosflags() Fonksiyonu


“Resetiosflags()” Fonksiyonu ise “setiosflags()” fonksiyonun tam tersi özelliğe sahip bir fonsiyondur. Aynı programda “setiosflags()”ile verilen formatın özelliklerini devre dışı bırakır ve bir önceki ya da doğal halinin görüntülenmesini sağlar. Yani reset atmış olur



Kod:


#include <iostream>

#include <iomanip>

using namespace std;

int main ()

{

cout << hex << setiosflags (ios_base::showbase);

cout << 200 << endl;

cout << resetiosflags (ios_base::showbase) << 100 << endl;

return 0;

}


Çıktı:


128