C# Pratikleri Bölüm 1 – ? ve ?? Operatörleri

Şubat 26th, 2012 No comments

Her ne kadar Java dünyasından gelmiş birisi olsam da şartlar beni .NET ile uygulama geliştirmeye itti diyebilirim. Bu konularda derinlemesine bilgi sahibi değilim, ancak C# ile uygulama geliştirirken karşılaştığım ve öğrenip kullandığım, küçük ama faydalı olabilecek kodlama pratiklerini paylaşmak iyi olur diye düşündüm. Bu ilk yazıda ? ve ?? operatörleri üzerinde durmak istiyorum.
Devamını Oku…

Categories: C# Tags: ,

Git – WinMerge ile diff Kullanımı

Ocak 28th, 2012 No comments

Versiyon kontrol sistemi olarak Git aracını kullananlar sanıyorum ki diff komutunu kullanarak dosyaları sıklıkla karşılaştırıyorlardır. Git Bash kullanarak çalıştırılan bu komutun çıktısı da konsol ekranında gösterildiği için, çok sağlıklı bir karşılaştırma yapmak mümkün olmayabiliyor. Özellikle dosyalar arasındaki farklılıklar arttıkça bunları takip etmek çok zorlaşıyor. Bir dosya karşılaştırma aracı olan WinMerge programını Git ile entegre ederek diff komutunun çıktısını görsel olarak çok daha gelişmiş bir biçimde görebiliriz.

Bunu yapmak için öncelikle http://winmerge.org/ adresine giderek WinMerge programını indirip kuralım. Yalnız programı kurarken “Program Files” klasörüne değil de direk “C” dizininin altına kurmakta fayda var çünkü “Program Files” klasörünün ismi boşluk içerdiği için Git ile entegrasyonda bazen problemler olabiliyor. İkinci adım olarak boş bir metin dosyası yaratıp içerisine aşağıdaki satırları girelim (WinMerge programını “C” dizininin altına kurduğumuzu varsayıyorum):

#!/bin/sh
# diff is called by git with 7 parameters:
#  path old-file old-hex old-mode new-file new-hex new-mode
"C:/WinMerge/WinMergeU.exe" "$2" "$5" | cat

Bu dosyayı git-diff-wrapper.sh adıyla kaydedelim. Ancak dosyanın uzantısının .txt olarak kalmadığına dikkat etmemiz lazım. Bu dosyayı da C dizininin altında GitScripts isimli bir klasör oluşturup onun içine atalım. Daha sonra Git Bash içerisinde aşağıdaki komutu çalıştıralım:

git config --global diff.external C:/GitScripts/git-diff-wrapper.sh

Buna alternatif olarak aşağıdaki satırları “C:/Users/(KullanıcıAdınız)” dizini altındaki .gitconfig dosyasına ekleyebilirsiniz. Yukarıdaki komut da zaten .gitconfig dosyasına aşağıdaki satırları eklemektedir.


external = C:/GitScripts/git-diff-wrapper.sh

Bu işlemden sonra Git Bash içerisinde bir diff komutu çalıştırdığımız zaman WinMerge otomatik olarak açılacak ve çok kolay bir biçimde karşılaştırma yapmanızı sağlayacaktır.

Categories: Git Tags: ,

Java’da Gizli (Implicit) ve Açık (Explicit) Parametreler

Ekim 18th, 2011 No comments

Programlama dillerinde bir işlev, fonksiyon veya yöntem (metod) çağırırken veri geçişi için parametreler kullanılır. Java dilinde de aynı şey geçerlidir. Aşağıdaki gibi bir yöntemimiz olduğunu düşünürsek;

public void maasArtir(double oran) {
	maas += maas * oran/100;
}

yukarıdaki yöntem parametre olarak double türünde bir değer almakta ve nesne değişkeni olan “maaşı” artırmaktadır. Parametre olan “oran” değişkeni yöntemin imzasında açıkça tanımlandığı için açık (explicit) parametredir. Buraya kadar ilginç birşey yok, bildiğimiz şeyler. Şimdi bu yöntemin Personel isimli bir sınıf içerisinde tanımlı olduğunu düşünelim ve Personel sınıfından yarattığımız personel1 adında bir nesnemiz olsun.

Personel personel1 = new Personel();

Daha sonra personel1 nesnesi üzerinden maasArtir yöntemini çağıralım.

personel1.maasArtir(20);

Bu koda göre personel1 nesnesine ait olan “maas” değişkeni %20 oranında artacaktır. “oran” parametre değişkeni açık parametre ise yazının başlığında belirttiğimiz gizli parametre nerededir? Java dilinde yöntem çağırırken kullandığımız nesne referansı da yönteme parametre olarak gönderilmektedir. Yani nesne referansımız olan personel1, maasArtir yöntemi için gizli (implicit) parametredir. Diğer bir deyişle yöntemi çağırmak için kullandığımız referans, aynı zamanda gizli parametredir. Gizli parametre yöntemin imzasında tanımlanmaz, gizli olması da zaten bu yüzdendir.

Peki, açık parametre olan “oran” değişkenine yöntem içerisinde direk adıyla erişebiliyorsak, gizli parametreye nasıl erişeceğiz? Bunun için de this anahtar kelimesi kullanılmaktadır. Yöntem içerisinde nesne değişkenlerine erişmek istediğimizde this kelimesini kullanabiliriz. Yani en yukarıda yazdığımız yöntemi aşağıdaki gibi de yazabiliriz.

public void maasArtir(double oran) {
	this.maas += this.maas * oran/100;
}

Yukarıdaki gibi bir kullanımda this anahtar kelimesi ile gizli parametreye erişmiş oluyoruz ve böylece personel1 nesnesinin maaş bilgisine erişiyoruz. Biz maas değişkeninin önüne this yazmasak bile bu kelime otomatik olarak eklenmektedir. Bu şekilde açıkça “this” yazmak, programın okunabilirliğini artırmak ve nesne değişkenleri ile yerel değişkenleri bir bakışta ayırt etmek için faydalı olabilir.

Categories: Java Tags: ,

Java’da this Anahtar Kelimesi ve Kullanımı

Haziran 18th, 2011 15 comments

Java dilinde kullanılan anahtar kelimelerden birisi de “this” kelimesidir. Kullanım alanı çok fazla olmasa da this anahtar kelimesinin ne işe yaradığını ve ne amaçlarla kullanıldığını öğrenmekte fayda var.  Basit olarak söylemek gerekirse this anahtar kelimesi o anda hangi nesne üzerinde işlem yapılıyorsa o nesnenin referansını döndürür. Şimdi bu anahtar kelime ile neler yapılabileceğine bakalım.

Devamını Oku…

Categories: Java Tags: , ,

Doodle Arşivi

Haziran 11th, 2011 No comments

Bildiğiniz üzere Google, çeşitli ülkeler için önem arz eden günlerde, günün anlam ve önemini anlatan logolar tasarlayıp karşımıza çıkıyor. Bu özel anlamlı logolara “doodle” adı verilmiştir ve 1998 yılından beri doodle geleneği devam etmektedir. Google geçtiğimiz senelerde 23 Mayıs, 29 Ekim gibi ülkemiz için önemli olan günlerde de doodle tasarımları yapmıştı. Charlie Chaplin’in 122. doğum gününde akılda kalıcı bir doodle tasarlayan Google, son olarak da Les Paul için gitar çalabildiğimiz bir doodle ile karşımıza çıktı. Doodle’lar günlük olduğu için kısa bir süreliğine görebiliyoruz hatta bazen hiç göremiyoruz. Google’ın geçtiğimiz yıllarda tasarladığı doodle’ları merak eden veya tekrar görmek isteyenler için bir adres var. 1998 yılından beri yayınlanmış bütün doodle arşivine aşağıdaki adresten ulaşabilirsiniz.

http://www.google.com/logos/index.html

 

Les Paul'un 96. Doğum Günü

 

Evliya Çelebi'nin 400. Doğum Günü

 

Avrupa Kültür Başkenti İstanbul

 

29 Ekim Cumhuriyet Bayramı

 

23 Nisan Ulusal Egemenlik ve Çocuk Bayramı

 

Categories: Diğer Tags: ,

iCity Proje Videosu

Haziran 9th, 2011 No comments

IBM Yazılım Akademisi 2011 yarışmasında finale kaldığımız iCity projesi için çektiğimiz videoyu aşağıdan izleyebilirsiniz.

Vize Macerası

Mayıs 25th, 2011 No comments

Bu dönemin başlarında 3 arkadaş kafaya koyduk, dil eğitimi için yurtdışına gitmeye karar verdik. Uzun süren araştırmalar sonucu Londra, Brighton, Sydney, Boston, Seattle gibi seçenekler arasından Amerika’daki Boston şehrini seçtik ve Embassy CES dil okuluna kayıt yaptırdık. Vize maceram da zaten bu noktada başlamış oldu. Tabi önce pasaportları çıkarttık, Ankara’daki Amerikan Konsolosluğu’ndan randevu aldık ve Amerika’ya ayak bastı parası dedikleri sevis ücreti ile başvuru ücretini yatırdık. Ardından işimizi şansa bırakmamak için bizden isteyebilecekleri bütün evrakları zaman darlığına rağmen titizlikle hazırladık. Bütün bu işlemleri yaparken Karya International firması danışmanlığımızı yaptı ve her konuda bizi yönlendirdi. Vize mülakatına gitmeden önce bize sorabilecekleri soruları ve vermemiz gereken cevapları da söylediler. Biz de kendimizden emin bir şekilde herhangi bir problem çıkmayacağı düşüncesiyle konsolosluğun yolunu tuttuk.

Devamını Oku…

IBM Yazılım Akademisi 2011 Finalindeyiz

Mayıs 5th, 2011 No comments

IBM’in her sene düzenlediği  Yazılım Akademisi yarışmasına bu sene Android343 takımı olarak Akıllı Şehir projesiyle katılmıştık. Gönderdiğimiz ara rapor ve final raporları sonrasında yapılan değerlendirmede finale katılmaya hak kazandık. Dereceye giren takımlar 14 Mayıs’da yapılacak olan final sunumlarının ardından belli olacak. Finale kalan 8 takım şöyle:

  • Android343
  • BilJ11
  • BuSon
  • Deep Impact
  • GMT
  • İTÜ
  • Jinuse
  • Kodamans

Detaylı bilgi için: http://www.yazilimakademisi.org/2011/

Categories: Duyuru Tags: ,

Java’da Serileştirme İşlemleri – 1

Mayıs 2nd, 2011 4 comments

Java gibi nesneye yönelik programlama dillerinde, nesneye ait alanların değerleri o nesnenin durumunu oluştururken, yazdığımız metotlar ise o nesnenin davranışını belirleyen ve nesnenin durumu üzerinde değişiklikler yapan kodlardır. Java dili bizlere bir nesnenin herhangi bir andaki durumunu bir dosyaya kaydetmemizi ve daha sonra bu dosya üzerinden nesneyi tekrar oluşturmamızı sağlayan bir mekanizma sunmaktadır. Bu mekanizmaya Serileştirme denir. Serileştirmeyi kullanarak JVM içerisindeki nesneleri sabit diske kaydedip kalıcı olmalarını sağlayabiliriz veya bir yerden başka bir yere aktarabiliriz .

Serileştirme yapılırken sınıf adı, tanımlı alanların türleri, adları ve değerleri gibi bilgiler tek tek bytelara çevrilir ve bir dosyaya kaydedilir. Daha sonra bu dosya kullanılarak aynı nesne yeniden oluşturulabilir. Serileştirme genellikle nesnelerin bir ağ üzerinden gönderilmesi amacıyla kullanılır. Serileştirme işlemi uygulanarak byte dizisi haline getirilen nesne ağ üzerinden başka bir bilgisayara gönderilir ve alıcı bilgisayar üzerinde yeniden oluşturulur. Nesnenin byte dizisine çevrilmesi işlemine “Serialization”, byte dizisi kullanılarak nesnenin yeniden oluşturulmasına ise “De-Serialization” denir. Şimdi Java dilinde serileştirmenin nasıl yapıldığına bakalım.

Devamını Oku…

Garanti Teknoloji – Talent Spot Organizasyonu

Nisan 25th, 2011 1 comment

Geçtiğimiz günlerde Garanti Teknolojinin düzenlediği Talent Spot organizasyonuna katılma şansı buldum. Ankara, İzmir ve İstanbul’daki üniversitelerden toplamda 60-70 kişinin katıldığı organizasyonda bir gün boyunca Garanti Teknoloji hakkında tanıtıcı bilgiler verildi. Kısaca değinmek gerekirse Garanti Teknoloji, başta Garanti Bankası olmak üzere Doğuş Grubu şirketlerinin teknoloji ihtiyaçlarını karşılayan ve bünyesinde büyük bir kısmı mühendislerden oluşan 850 civarında personel barındıran büyük bir teknoloji firması. Gidiş-dönüş uçak biletleri, havaalanından transfer gibi bütün ücretleri karşılayan Garanti Teknoloji firması mezun olmaya aday üniversite öğrencilerine kendilerini tanıtmak için böyle bir organizasyon düzenlemiş.

Sabah 9’da başlayan program üst düzey şirket yöneticilerinin verdiği seminerler ile devam etti. Firmadaki bütün birimlerle ilgili detaylı bilgiler ilgili birimin yöneticileri tarafından anlatıldı. Daha sonra Garanti Teknoloji binası içerisinde bir teknik gezi yaptık. Bu teknik gezide özellikle Garanti Bankası verilerinin işlendiği ve depolandığı yüksek hızlı mainframeler ve veritabanı sunucuları tanıtıldı. Ayrıca Türkiye’deki bütün Garanti Bankası ATM’lerinin ve şubelerinin izlendiği kontrol merkezine girip yapılanları görme şansı bulduk. Teknik gezinin oldukça faydalı geçtiğini söyleyebilirim.

Öğle yemeğinden sonra da seminerler devam etti ve seminerlerin ardından İnsan Kaynakları tarafından işe alım süreciyle ilgili bilgiler verildi. Ardından Garanti Teknoloji çalışanlarının katıldığı bir panel düzenlendi ve merak edilen sorulara firma çalışanları birinci ağızdan cevaplar verdiler.  Panelin ardından program sona erdi ve yorucu bir günün ardından evlerimize döndük.

Garanti Teknoloji gibi büyük teknoloji firmalarının bu şekilde organizasyonlar yapması hem öğrenciler hem de firma için oldukça faydalı oluyor. Garanti Teknolojiye düzenlediği bu organizasyon için teşekkür ediyoruz.

%d blogcu bunu beğendi: