23 Kasım 2010 Salı

Versiyon Kontrol Sistemleri ve Yazılımdaki Önemi

Bir çok zaman yazılımlar 1'den fazla kişi tarafından yapılır. Bir yazılımın yapılması kimi zaman kolay ise de, genellikle çok büyük zahmetlerle doludur. Bu yüzden yazılan çizilen, 3 gün önce yaptığınız, "ya bu bir ara çalışıyordu böyle değildi" diyebileceğiniz şeylerin aslında bir çözümü var. Versiyon Kontrol sistemleri.

Bu sistem kısaca şöyle çalışıyor. Bir dosya merkeziniz var. Burada dosyalar, değiştikçe, versiyon kontrol sistemi o dosyanın bir önceki halini saklıyor. Bu da gerektiğinde 1000 kere değişiklik yapılmış bir dosyada 300. halini görebilme imkanı dahi sağlıyor. Bunları yaparken ise gerekli yorumları yazdığınız takdirde, önceden ihtiyacınız olp da yaptığınız her şeyi görebiliyorsunuz. Dosya merkezini internete açık bir bilgisayara kurarsanız da, oraya erişebilen tüm kullanıcılar projeye dahil olabilmiş olur. Yaptıkları değişiklikleri buraya gönderirler (commit) ve yazılımın ana haline dahil etmiş olurlar.

Bazen 2 veya daha fazla kişi aynı dosya üzerinde değişiklikler yapıyor olabilirler. Bu gibi durumlarda ise "sen ne yaptın, ben şurayı düzelttim, al sana MSN den yolladım, oraya yapıştır, ama şurayı da düzeltmen gerekiyor, off puff..." gibi duyumları öncelerden sıkça duyuyoruz. Bu gibi durumlarda versiyon kontrol sistemlerinde gerek dosya kilitleme, (o dosyada kimsenin çalışmasına izin vermeme), gerekse de kim önce değişikliği gönderdiyse, sonradan gödnerenin yaptıklarının kaybolmadan - en azından tamamen silinmeden işlerini devam ettirme ve tamamlama şansı olabiliyor.

TortoiseSVN benim sıkça kullandığım programdır. http://tortoisesvn.tigris.org/ adresinden ulaşabilirsiniz.

Bir de bu hizmeti ve bunla birlikte dahili olarak yazılım geliştirmek için hizmet veren çeşitli internet tabanlı , siteler de mevcut. http://www.repositoryhosting.com da bunlardan biri. Bu konuya da başka bir yazımda değinmeyi düşünüyorum.

Büyük veya küçük çaplı tüm projelerde versiyon kontrol sistemleri mutlaka kullanılmalıdır diye düşünüyorum.

18 Kasım 2010 Perşembe

Sinirli ve Can sıkıcı Anlarda Fiziksel Ortam Değişkliği

İnsanoğlu gün içinde bir çok hadise ile muhatap olmak durumunda kalabilmektedir. Bu durumlar bazen sinirlendirici bazen de can sıkıcı olabiliyor. Bu durumlarda yapılabilecek doğru bir hareket tarzı var.

Genellikle belirtilen durumlarda insan mantıksal açıdan doğru karar veremeyebiliyor. Bir problem ile uğraşırken yanlış bir çözüm, herhangi sinir bozucu bir şeyden ötürü de ileride kötü sonuç doğruabilecek kararlar alabiliyor. Bir çoğunda da insan bir süre sonra yanlış karar verdiğini görüyor. Uzmanlar bu gibi durumlarda içinde bulunduğunuz fiziksel koşulları kısa bir süreliğine terk etmeniz durumunda daha mantıklı davranabileceğimizi söylüyorlar. Bence de gayet mantıklı.

Örneğin bir telefon görüşmesi sonrasında sinirlenen bünyemiz, görüşmeyi yaptığımız o odadan çıkıp başka bir ortama girdiğimiz takdirde çok daha hızlı toparlayabiliyor. Ayrıca belirtilen duruma takılı kalmamızı engellemiş olup, o durumdan çıkmamız için beyin kendine yeni bir ortam açmış oluyor. Tıpkı çeşitli IDE programlarında yeni bir workbench açmak gibi bir şey bu. Beynimize yeni bir workbench açıp içerisinde kullandığımız dosyaları yeni baştan yapılandırmak gibi.

Başka bir örnek de, bir probleme takılıp kaldık. Bir algoritma var, normalde bunun kurgusunu çok rahatlıkla yapabileceğinizi biliyorsunuz fakat, her nedense, bir türlü yerine oturmuyor. Bu gibi durumlarda kısa bir çay molası, arkdaşlarınızla yapacağınız küçük bir sohbet veya bir kaç espri, içinizde devam etmekte olan (bir nevi sonsuz döngüde devam eden) işlemlerin sonsuz döngülerini kırmaya yarıyor. Böylelikle tekrardan işinizin başına döndüğünüzde kişi, "Evet şimdi şuradan itibaren tek tek adım adım ilerleyeyim" demeyi akıl edebiliyor. Ve ya bunun gibi bazı çözümlemeler yapmayı aklına getirebiliyor. Bu da eldeki hususun aslında çok daha hızlı çözülmesini sağlıyor.

Özetle beyin, o sorun ile ilgilenirken etrafta görmüş olduğu şeyleri o problemin takılı kaldığınız noktalarıyla bağdaştırdığı için, bir şekilde takılı kalma işlemi (sonsuz döngü diye tabir ettiğim şey) devam ediyor. Ortam değiştirerek ise kafamızda üstü kirli bir masadan, temiz bir masaya geçmiş oluyoruz. Bu sırada da beynimiz, kendi masamızı temizlemiş oluyor.

Bunu herkes uygulayabilir. Ben yaptığımda işe yaradığını görüyorum. İlgisini çekenlerin de bunu okuduklarında elbet mantıklı geleceğini düşünüyorum.

12 Kasım 2010 Cuma

Nargilecide Buluşma Sebeplerimiz

Nargile sevdam üniversitede başlamıştı. Okul çıkışı, muhabbet etmek için, bizimkilerle buluşmak için, vakit geçirmek için, vakit geçirmemek için bir sürü geçerli veya geçersiz sebepten ötürü biz nargileciye giderdik..

İlk başta çok fazla içmezdim fakat daha sonraları 2 günde 1, 3 günde 1 içer oldum. Bunda kadiköye yakın olmamın da etkisi büyüktü.

Nargilecide buluşma sebeplerimizden bazıları şunlardı. Eksiğim varsa lütfen yorumlarla tamamlayınız :)
  • Maç seyretme
  • Buluşacak başka rahat yer bulamama
  • play station oynama
  • Kurtlar vadisi seyretme
  • Ezel seyretme
  • Yaz okulu sınavlarına çalışma
  • Birinden bir şey istemişizdir bu sebeple
  • Canımız sıkkındır
  • Gral (King) oynama
  • Proje konuşma
  • Halı saha maçı sonrası dinlenme
  • Son otobüse daha çok var deyip gitme
  • Nargilecinin arkadaş olması
  • Askere geliyorum diye son bir kez
Yaz okulunu nargileci olmasa geçemeyecektirk bir ara... Veri yapıları mı çalışıyorduk bir şeydi. 2 nargile, tek ders notu, 3 kişi! Ağzında nargile olmayan konuyu anlatırdı. Diğerleri de sismik(!) bir ortamda o konuyu dinler ve çözmeye çalışırdı.

Askere geldim geleli en çok özlediğim nesneler arasında nargile de var. İzne gittiğimde kısmetse özlemimi kısa bir süre gidericem. Ayrıca aklıma gelmişken; nargilecide çalışan personelin normal garson kılıklı insanlardan farklı olması gerekiyor bence. Samimiyet ve biraz rahatlık olursa, örneğin adam yok diye közü kalkıp bazen kendimiz koyabiliyorsak orası güzel bir yerdir. Tabi ki 1 kereye mahsus :) Köjman çok önemli! Burada (kıbrıs) nargilecilerin öyle bi havası yok. "İç de git!" dermiş gibiler. Umrumda olur mu muhabbeti olmasa?

Tabi nargile de diğer tütün mamülleri gibi sağlığa zararlı. Bu ölçüyü bilip, abartmamak gerekiyor. haftada 1 yeterli gibi.

3 Kasım 2010 Çarşamba

Asteğmen Olmak

3 nisan 2010 yılında askerliğimi yapmak üzere TSK'ya katıldım. Kısa dönem(6 ay) ve ya uzun dönem (12 ay) yapılabiliyor. Bu da 3 nisanda girmiş olduğum sınav ile birlikte ortaya çıkıyor. Biz 333. dönem askerleriz.

Sınav benim girdiğimde tamamen formalite icabı idi. Testin benim gibi hepsini doğru yapmaya çalışan da vardı, ya da kutucuklardan şekiller yapan da... Uzun dönem isteyen de vardı istemeyen de... Nitekim ordu, ihtiyacı olan personeli Asteğmen adayı öğrenci olarak (12 ay) kadrosuna dahil etti. Ben de bunlardan biri oldum. Dikkat çeken tek husus aramızda açık öğretim mezunu kimse yoktu. 4 yıllık okumuş, ve ya yüksek lisans yapmış arkadaşlarım vardı. En yaşlıları 85'li olarak bendim. (Yani 84 lü 1 tane vardı ya da yoktu. Gerisi 85, 86, 87 ve 88 liydi.) Kulağı delikmiş yok dövmesi varmış asteğmen olamazmış, vs... gibi hikayeler tamamen yalanmış bunu öğrendim.

İlk etapta çektiğimiz kuraya göre Isparta - Eğirdir dağ komando okuluna gittik. Orada komanda olamaz raporu alanlar (biri de ben) 3 gün sonra İstanbul'a Tuzla Piyade Okulu'na geldi. Asteğmenlik maceramız burada başladı...

Eğitimler çok ağırdı, ama zevkle yapardık. Komutanlarımız da seçilmiş kişilerdi. Hepsini (çoğu zaman kulaklarını çınlatsak da) severdik. Devletimiz bize bu kutsal vatani görevimizi ordumuzda yedek de olsa Subay sıfatıyla yapmayı uygun bulmuştu. Buna kimsenin üzülmemesi gerekiyor. Tabi ki ilk etapta biz de üzüldük, sevdiklerimizden daha fazla uzak kalacağız diye. Fakat zaman inanın geçer, eğer yapacak bir şeyler bulabiliyorsanız...

30 Haziranda Asteğmen rütbesiyle Tuzla Piyade Okulu'ndan mezun olduk. 15 Temmuz'da ise görev yerlerimize geldik. Ben Hudut branşında olduğumz için Hudut karakollarında görev yapıyorum. Ve şu anda kutsal şehitlerimizin birinin adı olan bir karakolda karakol komutanıyım. Ortalama 20 tane askerim var. Ülkemin dört bir yerinden gelen, belki az eğitimli, belki derdi olan, ama yüreği kıpır kıpır 20 mehmetçik
"Gelip geçici olmak değil, önemli olan kalplerde kalıcı olmaktır." diyorum onlara hep. Ve devletimizin bizlere vermiş olduğu maaşı(sivil hayatta aldığından belki az belki de çok bilemeyiz) haketmemiz gerekiyor. Eğer o insanlara birşeyler katabiliyorsam, aktarabiliyorsam, onları herhangi bir durum için hazır bulundurabiliyorsam, ne mutlu benim gibi asteğmene.

Ve tekrar söylüyorum, 12 ay asteğmen olarak askerlik yapacak arkadaşlar hiç üzülmesinler, kahraman Türk askerini emir komuta edecekler, bundan gurur duymalıdırlar...Hem de size söylenen "Sen askerde çok dayak yersin..." gibi lafları da sahiplerine rahatça artık iade edebilirsiniz. Tadını çıkarın :)

apache mod_rewrite ile URL yeniden yazma.

Bir çok web yazılımcısı, URL'den doğrudan kullanmış olduğu değişkenleri, veya çalışma stilini, veya istemediği dosyalara erişimi kısıtlamak ister. Ya da sadece Arama motoru optimizasyonu (SEO) için geliştirme yapmak ister. Nitekim Apache'nin sunduğu mod_rewrite modülü ile URL'lerin tekrardan işlenmesi mümkün. Nasıl mı?

Örneğin sitenizin adresi www.deneme.com olsun.
www.deneme.com/test.php?lang=tr&limit=100&action=list şeklinde bir URL niz var. Bu URL'nin sonucu olarak da sitede türkçe dilinde 100 adet şarkı listelenmiş olsa bütün değişkenlerimiz apaçık ortada her an değiştirilmeye veya kurcalanmaya hazır beklemiş olurlar.
Bu URL'yi mod_rewrite ile www.deneme.com/tr/100/list şeklinde değiştirebiliriz. Ya da başka bir kural belirleriz buna göre yeniden oluştururuz. 
Bence bu sayfada bir arama motorunun bu sayfa ile ilgili düşünceleri pek de iç açıcı olmayabilir. Sebebi Url'de içerik ile ilgili bir şeyin olmaması.

Benim fikrime göre URL şöyle olmalı.
www.deneme.com/gunumuzun_en_iyi_100_türkçe_sarkisi-100_tr_list.html
Böyle olduğunda sondaki .html tamamen yalancı bir ek, 100_tr_list kısmında aslında değişkenlerimizi göndermiş oluyoruz, ondan önceki kısımda ise arama motorlarıın aradığı şeyi bulduğu hakkında bilgisini kuvvetlendirmiş oluyoruz. URL de ve sitede aynı içeriği bulması, sizin arma sonuçlarında bir miktar dha yukarlarda olmanıza imkan verebilir.

Kullanıcmı :
  • Apache de mod_rewrite modülünü açmanız gerekiyor. (httpd.conf içinde genellikle önünde # işareti ile comment'lenmiş oluyor)
  • httpd.conf içerisinde ilgili web klasörünüz için ayarlarda .htaccess in kullanımının açılması gerekiyor.   AllowOverride all diyerek açılıyor. (Daha fazla detay için lütfen apache allowoverride seçenekleri)
  • belirtilen sitenizin index.php sinin yanına .htaccess dosyası oluşturulması gerekiyor. Bu dosya RewriteEngine on  (yeniden yazma motorunu devreye alır)

    RewriteCond   %{REQUEST_URI} (yeniden yazma için regexp ifadesi (örn: .html yazarsanız .html gördüğü tüm durumlar yeniden yazma çalışır))
    RewriteRule  ([^/]+)-_-([^/]+)_([^/]+)(\.html)/?$ (yönlenmesini istediğiniz sayfa. Burada $1 , $2 diye $ karakterinden önce gruplanmış kısmı değişken olarak kullanabilirsiniz. ) [L] (burada da çeşitli ifadeler ile yeniden yazma işleminin tekrarlanmasını, tekrarlanmamasını, vs.. gibi özelliklerini ayarlayabilirsiniz.) 


Basit bir şekilde bir yeniden yazma işlemi şöyle olur.
RewriteEngine on
RewriteCond   %{REQUEST_URI} ahmet.html
RewriteRule  mehmet.html

2 Kasım 2010 Salı

Hattrick.org online menajerlik oyunu

Bir tutkudur futbol menejerlik oyunları. Saatlerce başından kalkmadan futbolcu alıp satarız, taktik belirleriz, vs...

Bu bahsetmiş olduğum site hattrick.org ise bunu online olarak yapıyor. Bir takım alıyorsunuz ve çeşitli antremanlarla, futbolcu alıp satarak kendi takımınızı oluşturuyorsunuz. Ayrıca sitenin dili de çok sempatik. Futbolcu özellikleri için berbat, kazma, muhteşem, efsanevi gibi terimler görüyorsunuz. Tabi hepsinin rakamsal bir karşılığı da var. Ayrıca komplekslik seviyesi çok iyi ayarlanmış. Çok detaylandırmadan oynayabileceğiniz gibi, detaydan hoşlananları için de tatmin edici özellikleri var.

Siteye taraftarlık paketi alarak üye olursanız da ek özellikler devreye giriyor. Fakat bu ek özellikler maçı kazanmanıza yönelik bir getiri kesinlikle sağlamıyor. Bu da adaletli olduğunu gösteriyor.

İnternet üzerinde olduğu için haftada 1 lig maçı ve 1 hazırlık/kupa maçı yapmanıza imkan var. Böyle olunca hem saatlerinizi harcamamış oluyorsunuz, hem de sabretmenin de keyfini çıkarıyorsunuz.
Benim takımımı da buradan görebilirsiniz. 2006 Yılından beri oynamaktayım. 7. ligde başladım. hemen 8 e düştüm. sonra 7 6 5 4 derken şimdi 3. ligdeyim. 1-2 sezon sonra 2. lige çıkmayı hedefliyorum.


İlginizi çekerse...