Unuttum Sanma

Unutmadım seni hep aklımdasın ama vakit bulamıyorum. Yoğunuz çok yoğun Joygame büyüyor ve büyüdükçe işler ağırlaşıyor. Kalite Güvence ekibi türlü türlü sorunlarla uğraşıyor, boş vaktinde yine sorun arıyor! Arada kaliteyi arttırmak için önerilerimizde olmuyor değil ama temelde uğraşımız hep sorun. Oyunda, sunucuda, sitede, sistemde, dünyada… Online oyun dünyası sabit değil sürekli bir heyecan sürekli bir stres. Çok yorucu çok yıpratıcı ama hem size duyulan güven hem de müşteriniz olan 7’den 70’e bir kitle için çalışmak gerek. Her iki tarafta işinize saygı göstermenizi ve çok çalışmanızı hak ediyor.

Yazmayı seviyorum ama çok oyun oynuyorum, test için. Bilmediğim dillerde, bilmediğim kültürlerden çıkan oyunları dinliyor bazende kendi kültürümden bir şeyler oluşturmaya çalışıyorum. Yenilikler o kadar fazlaki kendinizi sürekli geliştirmek zorundasınız, umarım buna ayak uydurabiliyorumdur.

Arada zevk için oynadığımda olmuyor değil ama fazla uzun süremiyor malesef. Oynayacak başka şeyler buluyorum kendime oyuncaklardan ziyade. Hayal gücümü doyurmak için filmler, diziler seyrediyorum hayaller kurmaya asla ara vermiyorum. Bir gün bazılarının gerçekleşeceğine inanıyorum. O zaman hepimiz mutlu olacağız. Baksana kurtlar taksimde ulumaya bile başladı! Bir hayal gerçekleşti ama birazda gerçek hayata dair hayal ettiklerimizi başarmak gerek. Onlara da sıra gelecek!

Ubuntu LAMP

Giriş
LAMP, Linux Apache Mysql PHP kısaltması olarak aklımızda kalıyor. Bazı yerlerde P yerine PHP’den başka bir dil gelebilir ama bu yazıda PHP’yi anlatacağız. Günümüzde çoğu Linux dağıtımı temel ayarlarla gelmektedir, ben Ubuntu 10.04 LTS kullanıyorum ve temel Birkaç ayarı burada anlatmaya çalışmayacağım, uzmanlar anlatsın 🙂 Aslında kendime not almak için yazıyorum bu yazıyı ama belki ihtiyacı olan vardır diye blogda yayınlıyorum tutorial kıvamında, yanlışım varsa şimdiden affola, yorumlarla bana düzelttirile!

Apache Web Sunucusu Kurulumu ve Ayarları
Apache günümüzde en yaygın olarak kullanılan web sunucularından birisidir. Bu yüzden apache ile ilgili bir çok doküman bulmak mevcut bu kısımda ayrıntıya girmeden apache kurulumu ve yapılandırılmasından bahsedeceğim. Öncelikle sisteminizde ki paketleri güncelleyin.
apt-get update
apt-get upgrade –show-upgraded
Ubuntu üzerinde apache’yi kurmak için aşağıdaki komutu kullanın. Bu komut apache version 2 serisini bilgisayarınıza kuracaktır.
apt-get install apache2
Bu işlemi tamamladıktan sonra sanal konaklama(Virtual Hosting) ayarlarını yapacağız.

Sanal Konaklamayı Ayarlamak
Öncelikle /etc/apache2/ports.conf dosyamızı kontrol edelim. Ben bu dökümanı hazırlarken içersinde
NameVirtualHost *:80
Listen 80
değerleri yazılmış ve hazır şekildeydi. Burada 80. portu dinlediğimizden ve sunucumuzun tüm ipleri dinlediğiden emin oluyoruz. Ardından açacağımız site için /etc/apache2/sites-available/ dizinine bir dosya oluşturuyoruz. Örnek olarak:
touch siteminadi.com
Bu dosyayı vim ile açıyor ve düzenlemeye başlıyoruz:
VirtualHost *:80>
ServerName www.siteminadi.com
ServerAlias siteminadi.com
DocumentRoot /srv/www/siteminadi.com/dosyalarhangidizindeyse/
ErrorLog /srv/www/siteminadi.com/logs/error.log
CustomLog /srv/www/siteminadi.com/logs/custom.log
/VirtualHost> (VirtualHostların başında < şu işaret var ama burada yazınca blogger sapıtıyor) ServerAlias kullanıcılarınızın sitenize erişmek için kullandığı adresleri içerir, Log dosyaları sitenizin kayıtlarını tutar, document root sitenizi barındırdığınız dizini adresler, servername hangi barınağın hangi adrese gideceğini belirler. Elbette bunları buraya yazmanız direkt çalışacağı anlamına gelmez, DNS'lerini düzggün bir şekilde sunucunuzun IP'sine yönlendirmeniz gerekir. Bundan böyle sunucunuza bir istek geldiğinde önce izin verilen iplerden birisi olup olmadığına bakılır ardından uygun servername aranmaya başlanır ve bulunduğunda bu documentrootta bulunan içeriğe yönlendirilir. Bu dosyayı oluşturduktan sonra ya da önce belirttiğiniz dizinleri oluşturmanız gerekir, yoksa apache hata verir. mkdir -p /srv/www/siteminadi.com/dosyalarhangidizindeyse mkdir /srv/www/siteminadi.com/dosyalarhangidizindeyse/logs Eğer dosyalar zaten ayarlıysa şu komut ile siteyi aktif hale getirirsiniz a2ensite siteminadi.com Bu komutla dosyanız sites-enabled dizine kopyalanır ardından apache'yi restart ederek ya da reload ederek siteyi açarsınız. /etc/init.d/apache2 restart /etc/init.d/apache2 reload Mysql Kurulumu ve Ayarları
Öncelikle şu komutu çalıştırın

apt-get install mysql-server

Kurulum sırasında sizden root şifrenizi ayarlamanız istenir, bir şifre belirleyip not ediniz.
Mysql başlı başına bir konudur ama biz sadece bir veritabanı oluşturacağız şu komutla mysql sistemine giriş yaparsınız

mysql -u root -p

Şifrenizi girmenizi isteyecek root şifrenizi girip giriş yapınız.
Database oluşturmak için aşağıdaki komutu kullanın, sonuna ; işareti koymayı unutmayın, mysql’de komutlar ; işareti ile biter.

create database benimdb;

Database oluştu üzerinde bir kullanıcı oluşturup tüm haklarını bu kullanıcıya vermek için aşağıdaki komutu yazınız kullanıcı adı dbadmin şifre 12345 yaptım, siz daha düzgün bir şey seçersiniz.

grant all on benimdb.* to ‘dbadmin’ identified by ‘12345’;

Flush komutuyla ayrıcalıkları güncelliyoruz.

flush privileges;

İşimiz bitince çıkış yapıyoruz

quit
PHP Kurulumu ve Ayarları
PHP bir programlama dilidir ve LAMP rehberinde onun kurulumunu anlatacağız. Şu komutla kurulumu yaparsınız.

apt-get install php5 php-pear

İsterseniz şu adresteki ayar dosyasını güncelleyebilirsiniz, başlangıç seviyesi kullanıcılar gerekmedikçe bu dosyayı güncellemek zorunda değildir. Çoğu ayar standart şekilde zaten yapılmıştır. Bir değişiklik yaparsanız Apache’yi restart etmeniz gerekir.

/etc/php5/apache2/php.ini

Mysql desteği için şu paketi kurunuz böylece PHP ile Mysql güzelce anlaşmaya başlar, Apache ise zaten PHP’nin dilinden çok iyi anlar ve kısaca LAMP kısmını geride bırakırız.

apt-get install php5-mysql libapache2-mod-auth-mysql

Grafiksel araçlar, çeşitli ayarlar bunların hepsi sonra yapılabilir ama öncelikli olarak sunucunuz artık bu bileşenlere sahiptir. Ayrıntılar vakit bulursam belki ileride burada yayınlanır. Okuduğunuz için teşekkürler

Kaynakça:

http://httpd.apache.org/docs/2.0/en/vhosts/name-based.html

http://library.linode.com/lamp-guides/ubuntu-10.04-lucid/

https://help.ubuntu.com/community/ApacheMySQLPHP

Japon

http://www.noob.us/entertainment/japan/

http://www.noob.us/entertainment/japan-part-2/

Alıntı:

“this is what happens when you drop an atomic bomb on a country”

İzlediğinize pişman olacaksınız şimdiden uyarayım, neler oluyor bize şarkısı favoriniz olacak.

ASP.NET MVC Framework

Bir süredir Windows Sunucular ve Microsoft teknolojileri ile haşır neşir olduğumdan
ASP.NET’e ve MVC Framework’üne yoğunlaşmaya başladım. Django ile uğraştığımızdan dolayı MVC ile çalışmayı öğrenmek hızlı oldu. Öncelikle MVC’nin açılımı ile başlayalım Model, View, Controller. Modeli genelde veritabanında ki tabloların yapısı ve durumlarını belirlemek için kullanıyoruz, controller adından da anlaşılacağı üzere işlemleri kontrol ediyor ve sonuçları View kısmına aktarıyor. Bunları Visual Studio gibi bir aletle yapıyorsunuz ki sanırım işin en ilgi çekici kısmı burası. Basit bir sinema sitesini belki 1 saatte temel olara tasarlıyabiliyorsunuz ki MVC’nin tutoriallarına baktığınızda ilk bölümde böyle bir sistemin anlatıldığını göreceksiniz. Tabi Amerika’yı yeniden keşfetmiyorum bu özellikler yeni bir şey değil ama sonuçta burada kendi tecrübelerimi ve yaşadıklarımı anlatıyorum. Visual Studio projeyi geliştirmek için harcadığınız zamanı çok ama çok azaltıyor. Düzgün dökümanlarda gerek asp.net sitesinde gerekse bloglarda ve çeşitli topluluk sitelerinde mevcut.


MVC’nin diğer bir özelliği tasarımın çok temiz bir şekilde yapılması. Hangi dosyayı nereye kaydetmiştim, şuna nasıl ulaşacağım derdi yok. Neyin nerede olduğu Solution Explorer’da göründüğü gibi çok açık bir şekilde anlaşılıyor. Controller kısmına sağ tıklıyorsunuz ve bir controller oluşturuyorsunuz. Oluşturduğunuz controller ilgili urlyi view’a yönlendiriyor.

public ActionResult Selam()
{
return View();
}

Şeklinde kısacık bir fonksiyonla /url/controllerBaşlığı/fonksiyon şeklinde işlem yapabilir hale geliyorsunuz. Ama önce Selam yazısına sağ tıklayıp yeni bir view oluşturmanız gerekiyor. Bunların hepsini saniyeler içersinde yapıyorsunuz. View oluştururken modelinize göre otomatik bir liste ya da listeye bir şey eklemek için Create sayfalarını otomatik oluşturabiliyorsunuz. Bu sayfaların tasarımlarını kontrol etmek elinizde isterseniz hepsini otomatik bir şablon üzerinde çalıştırabiliyor ya da ayrı ayrı templateler oluşturabiliyorsunuz. İnşallah yakın zamanda güzel örnek sitelerle karşınızda olacağım. Belki bir tanesini oluştururken video çekerim böylelikle ne kadar sürede neler yapabildiğinizi daha rahat anlarsınız.

Microsoft Web Platform Installer 2.0 ile PHP Kurmak

IIS üzerinde manuel olarak PHP kurmak sizi zorlayabilir. Bunu atlatmanın en kısa yolu Microsoft’un Web Platform Installer 2.0 programını kullanmak olsa gerek. Bir kaç adımdan oluşan bu işlemi kısaca anlatacağım. Öncelikle sunucunuza bağlıyken

http://php.iis.net adresine gidin.

Karşınıza çıkan sayfada şöyle bir kısım olacak. Install PHP tuşuna tıklayın ve eğer sisteminizde Web Platform Installer 2.0 kurulu değilse kurun.

Programı kurduktan sonra şöyle bir pencere açılacak. Ben daha önce kurduğum için otomatik seçili olduğu sayfayı gösteremiyorum ama PHP sizde otomatik seçili olacak ve Install tuşuna tıkladığınızda otomatik olarak kurulacak.

Windows Server 2008 Sistem Gereksinimleri

İşlemci
Minimum: 1 GHz (x86 İşlemciler) veya 1.4 GHz (x64 İşlemciler)
Tavsiye Edilen: 2 GHz veya daha fazla

RAM
Minimum: 512 MB
Tavsiye Edilen: 2 GB veya daha fazla

Maksimum (32-bit Sistemler): 4 GB (Windows Server 2008 Standart) veya 64 GB (Windows Server 2008 Enterprise veya Windows Server 2008 Datacenter)

Maksimum (64-bit Sistemler): 32 GB (Windows Server 2008 Standart) veya 1 TB (Windows Server 2008 Enterprise, Windows Server 2008 Datacenter) veya 2 TB (Windows Server 2008 Itanium temelli Sistemler)

Disk Alanı
Minimum: 10 GB
Tavsiye Edilen: 40 GB veya daha fazlası
Not: 16GB’dan fazla RAM’i olan sistemler daha fazla alana ihtiyaç duyuyor.

DVD-ROM sürücüsü
Super VGA (800×600) veya daha yüksek çözünürlüklü monitör
Klavye ve fare
İnternet

Sonsuzluk

İki arada kalmış bir ruh sonunu beklemekten başka ne yapar?
Seni bulana kadar bu böyleydi.
Her şeyin sonu bir gün gelecek,ya bizim ki?
Bizim sonumuz asla gelmeyecek aşkım, hep birlikte olacağız.
Buna inanıyor musun?
Öğrenilecek çok şey var, bu da onlardan birisi.
Neye inandığımız değil, nasıl biteceği önemli.
Belki devam eder, sonsuza dek?
Sonsuzluk yalnızlık demek. Bizim için bile.

Test Çeşitleri

Benchmark Testing
Performans testi diyebileceğimiz bu testte aygıtın ya da uygulamanın çeşitli iş yükünde
nasıl bir verimde çalıştığını görmektir. İş yükü arttıkça performansının nasıl etkilendiğini
bulmak ileride size yeterli olup olmayacağı konusunda fikir verir, gerekirse projenin başında
eldeki sistemi geliştirmeye karar verirsiniz.
Durability Testing
Dayanıklılık testi belli bir zaman diliminde sistemin ne kadar yükü kaldırabildiğini ölçmede kullanılır. Genelde fabrikalarda örnek ürünlerin üzerinde yapılan deneyde mesela çeliğin ne kadar esneyebildiği ya da çelik bir telin ne kadar yük çekebildiği ölçülür, sınırlar belirlenir.
Load Testing
Yük testi de diğer testler gibi sınırlarda dolaşır. Beklenen maksimum iş gücünde sistemin performansı ölçülür. Bu yükü ne süre kaldırabileceği yük altındayken çalışmasının ne ölçüde değiştiği hesaplanır.
Scalability Testing
Ölçeklenebilirlik testi sistemin geliştirilmeye ne kadar uygun olduğunu belirler. Örneğin bir sunucu 5000 request’e cevap verebilir ama 10000’lik bir request’e cevap verecek duruma getirilebilir mi? Artan kullanıcı yükü karşısında sistemin bileşenleri incelenir ve bu yüke ne kadar uyumlu oldukları gözlemlenir.
Stress Testing
Sistemin sınılarını tam anlamıyla zorlayan test budur. En düşük ve en yüksek iş yoğunluğunda performans gözlenir ve ne derece düşmeler olduğu tespit edilir. Kritik bir öneme sahiptir.
Volume Testing
Bu test belli bir yük altında sistemin çalışıp çalışmadığını sınıra ulaşılıp ulaşılmadığını anlamak
için yapılır. Hacim testleri sürekli ya da belli bir hedefe göre yapılabilir.

Strateji Oyunları

Küçüklüğümden beri bu tarz oyunlara meraklıyımdır. Arkadaşlarım top oynarken ben elime geçen ve bir birine benziyen evdeki mandallarla, iğnelerle, satranç taşlarıyla çeşitli oyunlar kurgular ve kahramanı olurdum. Vakit ve rakip buldukça satranç oynardım ama esas gelişme eve bilgisayar almamla yaşandı.

Oyunlara çok vakit harcadığım tahmin edilebilir bir şey… Bilgisayarla alakalı olduğumu ve oyun firmasında çalıştığımı bilen herkes zamanında oyunlara ne kadar vakit ayırmış olduğumu anlar. Düşünüyorum nelerle zaman geçirdim? Starcraft 2 içlerinden en iyisiydi sonra Age Of Empires, Age Of Empires 2, Sudden Strike serisi, Blitzkrieg, Commandos, Chicago, Disciples, Heroes of Might And Magic, Red Alert serisi, Warcraft serisi, Hearths of Iron, Total War, Warlords Battlecry serisi, Battle for Wesnoth, Dune, Tiberium Sun gibi onlarca oyun…

Elbette günlerimi bu oyunları bitirmek için harcadım. Sonlarını öğrenmek, bölümler arası sinematikleri izlemek en büyük zevkimdi ve çok eğlendiğimi kesinlikle söyleyebilirim. O zamanlar ingilizcem şimdiki gibi iyi değildi. Sırf oyunlarda brifing kısmında ne söylendiğini anlamak için sözlüğü açıp çeviri yapardım. Bazı konularda o kadar kendimi geliştirdim ki bir ordu verseniz savaşa götürebilirdim!

Strateji oyunları ingilizcemin yanında başka bir özelliğimi daha geliştirdi, hayalgücümü. Aynı zamanda strateji kurma, geleceği tahmin etme, olayları olmadan önce planlayıp ona göre hareket etme kabiliyetlerini kazandım. Nerde nasıl davranacağımı, ne olursa ne yapacağımı bu oyunlarda edindiğim yetenekler sayesinde hep bildim.

Plan yapabilmek, gelecek hakkında olasılıkları tasarlamak güzel şey. Bunları strateji oyunlarına borçluyum ve bu konuda geliştiricilerine minnettarım. Kıymetleri pek bilinmesede onları takdir eden ve iyiki varsınız diyen ufak bir kesimin olduğunu umarım biliyorlardır.