27 Ocak 2013 Pazar

jsWindow Kütüphanesi

Web uygulamalarında kolay kullanım ,erişilebilirlik özellikleri yeni kütüphane ve teknolojilerle gittikçe gelişiyor. Web teknolojilerinde eksikliğini hissettiğimiz özellikleriden biri de diyalog pencereleri. Javascript diyalog pencereleri çok yetersiz ve geliştirilebilir bir durumda değil. Bunun için çeşitli kütüphaneler kullanarak bu özellikleri sağlayabiliyoruz. Bunlardan biri de jsWindow . Bu kütüphanenin farklı tarafı tamamen Türkçe olması. Yazan arkadaş kendini geliştirmek için başlamış projeye. Şuanda proje açık kaynak ve geliştirmeye açık. Her ne kadar yazılım dünyası İngilizce olsa da  İngilizce bilmeyen arkadaşlar için yararlı bir deneyim sağlayabilir.


Şimdilik üç çeşit diyalog pencere çeşiti bulunmakta.

  • Statik Pencere
  • Dinamik Pencere
  • Bildirim Penceresi
Statik pencere sabit pencere açıyor dinamikte ise taşıyabileceğiniz,büyütüp küçültebileceğiniz bir pencere açıyor. Daha fazla bilgi ve deneyim için web sayfasını ziyaret edebilirsiniz. 

26 Ocak 2013 Cumartesi

Global Game Jam 2013


Dünya genelinde yapılan 48 saatlik oyun geliştirme yarışması dün saat 5te başlamış bulunmakta. Bu seneki oyun teması kalp atışı. Bende ortamı görmek için ODTU deki bu organizasyonda bulundum. Yarışmaya katılım oldukça iyi diyebilirim. Ben yarışmanın başında organizasyonda bulunduğum için daha çok beyin fırtınalarına şahit oldum. İşin belkide en kritik yanı 2 günde olgunlaştırabileceğiniz bir fikir üretip buna başlamak olacaktır.
Organizasyonun Türkiye ayağı için  http://www.ggjturkey.org adresinden daha detaylı bilgiye ulaşabilirsiniz.
Resmi sitesine ise bu linkten ulaşabilirsiniz. Önceki yıllarda yapılan oyunları merak ediyorsanız http://globalgamejam.org/games bu adresi inceleyebilirsiniz.

24 Ocak 2013 Perşembe

Admin Panel Şablon Tasarımları

Yazılımcı olarak grafik dizayna özellikle web uygulamalarında gereksinim duyuyorum.  Ne var ki internette bir çok web şablon tasarımları mevcut. Admin panellerle ilgi güzel bir paylaşım yapan bir sitenin linkini paylaşmak istiyorum. Tasarımlar oldukça hoş. Tasarımların hepsinin indirme linki bulunmakta ayrıca bazılarının demo siteleri de mevcut. Hatta bazı tasarımları psd dosyaları da mevcut.  Buradaki şablonlardan birini bu ara kullanmayı düşünüyorum. Benim gibi tasarım özürlü insanlar için böyle tasarımlar çok büyük nimet diyebilirim. Tasarım konusuna da vakit ayırmak isteyen birisiyim ancak henüz öyle bir fırsatım olmadı. 


23 Ocak 2013 Çarşamba

Real Time Web Uygulamaları (Fire Base)

HTML 5 teknolojilerinin sağladığı imkanlarla performanslı web uygulamaları yapmak kolaylaşıyor. Özellikle websocket kullanılarak real-time veri transferi yapılabiliyor. Web uygulamalarında multi user etkileşimi sağlamak için kullanılan teknolojiler ajax aracılığı ile haberleşebiliyordu. Ama web serverlar verilerin kullanıcılar arasında transferini veritabanı ile sağlıyor. Buda performans açısından oldukça kötü sonuçlar verebiliyor.  Real time oyunlar için flash gibi ekstra plug inler gerekiyordu.

Web Socket kullanılarak artık real time veri transferi yapabiliyoruz. Bu teknolojiyi kullanarak server tarafının hizmetini sağlayan bir üründen bahsedeceğim. Firebase gerçek zamanlı server taraflı hizmet veren bir ürün. Yani siz client tarafta javascript ile göndermek isteiğiniz veriyi bu hizmetle kolayca diğer clientlere dağıtabiliyorsunuz.

Mesela performanlı bir chat uygulaması veya multiplayer bir oyun yapmak istiyorsanız bu hizmetten yararlanabilirsiniz. Sitesinde interaktif tutoriallar mevcut. Küçük javasciptlerle kolay bir şekilde olay tabanlı kod yazabiliyorsunuz.

Firebase sitesine bu linkten ulaşabilirsiniz . Tabi ki bu hizmetin bir karşılığı var.



Pingdom ile Hız testi

Pingdom aracı web sitenizin hızı test edebileceğiniz güzel bir online araç. Web sitenizin hızına bir çok faktör etki edebilir. Bunların içinde sizin web sitenize bağlı olmayan unsurlarda olabilir. Share hosting kullanan bir web site o anki server yoğunluğuna bağlı olarak yavaşlayabilir. Yani sizin sitenizde çok kişi olmasa bile aynı serverda yer alan başka bir web sitedeki yoğunluk sizin sitenizinde yavaşlamasına neden olabilir. Dedicated server kullanan bir web siteniz varsa burda kedi web sitenizdeki yoğunlukta sitenizin hızını etkiler.

 Bunun dışında web sitenin kendisinden kaynaklanan yavaşlamalarda olabilir. Eğer bir sayfa yüklenirken çok miktarda veritabanı sorgusu yapılıyorsa bu web sitenin yüklenme süresini uzatabilir. Yine web sitesi yüklenirken javascript ve css dosyalarının çok fazla ve büyük boyutlu olması hızını azaltır. Sitedeki text tabanlı içeriğin fazla olması hızı çok etkilemese de abartmamak gerekir. Resimler ise sistemde yine yavaşlamaya neden olabilecek unsurlardan. Bunun için resimlerin yüksek çözünürlük yerine sayfada gösterilen boyutuna çevrilmiş olması gerekir. Web sitenizin yüklenme sırasında hangi dosyanın ne kadar zamanda yüklendiğini tesbit etmeniz için bu araç oldukça iyi. Benim bloğumun test sonucu aşağıdaki gibi. Dosya zamanları uzun olduğu için paylaşamıyorum.

HTML5 Audio Player

HTML 5 yeniliklerinden biriside ses ve video oynatıcı özelliklerinin gelmesi. Kolay bir şekilde sitenizde ses veya video herhangi bir plug in gerektirmeden çalabilirsiniz. Bu linkten kullanımına bakarak yeni HTML 5 audio tagi ile bunu deneyebilirsiniz.. Ses dosyası URLsini bir web sittesinden veya google drive veya dropbox gibi bir ortamdan çekebilirsiniz. Bazı browserlar hala tam desteklemiyor olabilir ama chromeda şu anda benim bloğumda çalışıyor.



Blogger bloğunuza bunu eklemek için yapmanız gereken yeni text gadget oluşturup bu kodu html tarafına yapıştırmanız.

22 Ocak 2013 Salı

Cassandra beni kastı


Cassandra veri tabanı ile ilgili araştırma çalışmaları yapıyorum bu aralar. Stand alone kurulum basit bir şekilde yapmış bulunmaktayım. Diğer bloğumda bununla ilgi yazıya ulaşabilirsiniz. Ancak cluster kurup dağıtık yapıda bu işlemi yapmayı çalışırken tıkanmış durumdayım.  3 tane sanal linux makinede bu kurulumu yapmak için başlamıştım. Kurulum ve konfigürasyonlarda herhangi bir sıkıntı yoktu ama ikinci nodu bir türlü başlatamadım.
Iptables ile firewall ayarları kapatıp denedim yine olmadı. Şimdi konsantremi tekrardan toplayıp denemem lazım.

Daha sonrasında Hadoop ile entegrasyon işlemi var. MongoDB de map reduce entegre bir şekilde geliyor Cassandra ile bunu yapabilmek için hadoop gerekiyor. Cassandra sorgulama dili açıkçası çok yetersiz. Sadece indexli alanlarda sorgulama yapabiliyorsunuz. Aslında bu özellik Cassandra big data veritabanı olmasından kaynaklanıyor. Evet derin bir nefes alıp devam etmek lazım.

20 Ocak 2013 Pazar

MUSE Survival

MUSE Londra Olimpiyatları için hazırladığı bu şarkı gerçekten güzel bir parça. MUSE canlı performans olarak olimpiyatların sonunda bu şarkıyı söylemişti. İnsanı gerçekten coşturan bir müzik. Sahne şovuda bir harika. MUSE grubunun canlı performanslarını açıkçası daha çok beğeniyorum zaten. Bu videoyu seyretmenizi tavsiye ediyorum . İnsanı kendine getiriyor bence.

Arkada eşlik eden bayanlardan birini de Nicole Kidmana benzetenler çok :) .

En son olarak şarkı sözlerini paylaşıyorum.


Muse – Survival Lyrics
Race, life’s a race
And I am gonna win
Yes, I am gonna win

And I’ll light the fuse
And I’ll never lose
And I choose to survive
Whatever it takes
You won’t pull ahead
I’ll keep up the pace
And I’ll reveal my strength
To the whole human race
Yes I am prepared
To stay alive
I won’t forgive, the vengeance is mine
And I won’t give in
Because I choose to thrive
I’m gonna win
Race, it’s a race
But I’m gonna win
Yes I’m gonna win
And I will light the fuse
I’ll never lose
And I choose to survive
Whatever it takes
You won’t ṗull ahead
I’ll keep up the pace
And I’ll reveal my strength
To the whole human race
Yes I’m gonna win
Fight! Fight! Fight! Fight!
Win! Win! Win! Win!
Yes I’m gonna win

19 Ocak 2013 Cumartesi

Khan Academy Animasyon

Khan academy üniversite seviyesinde bir çok dersin videosu bulunan online bir akademi sistemi diyebiliriz. Bir çok mühendislik veya diğer alanlarda derslerin videolarına burdan ulaşabiliyorsunuz. Ancak siteden yararlanmanız için ingilizce bilmeniz gerekiyor. Bu web sitesi bir çok yatırımcı tarafından desteklenen bir sistem olmuş.  Bu yatırımcıların başında Gates ailesi bulunuyor.

 Aslında bu web sitesine benzer sitelerde yok değil ancak benim ilgimi çeken bu sitede bir uygulama oldu. Online olarak javascript kodu yazıp sonucunu görebiliyor olmanız. Bilgisayar mühendisliği altında çizim ve animasyon konuları altında örnek çizim ve animasyonlar bulunmakta. Bu çizim ve animasyonlar javascript -canvas elementi kullanılarak oluşturulmuş. Sol tarafta javascript editöründe yaptığınız değişiklileri çalışma zamanında görebiliyorsunuz.  Bu linkten bu sitedeki güneş sistemi simülasyonuna ulaşabilirsiniz. Sol taraftaki kod editöründe değişiklik yaparak kendinize özel uygulamaları görüntülüyebilirsiniz. Eğer sisteme kaydınız varsa yaptığınız online uygulamayı paylaşabilirsiniz.


Bu linkte de abartıp minecraft tarzı harita oluşturulmuş incelemenizi tavsiye ederim .

Desmos formül grafiği aracı

Desmos javascript ile yazılmış interaktif bir grafik aracı. Bu araçla girdiğiniz matematiksel formülleri kolay ve güzel bir şekilde görselleştirebilirsiniz. Öyle ki bunu abartıp matematik formüllerle mickey mouse çizenler olmuş. Zaten desmos ana sayfasında çeşitli çizimler bulunmakta. Matematik aracından çok sanatsal bir araç gibi kullananlar çoğunlukta gibi. Ama yine de matematiksel formüller için gerçekten kullanışlı bir araç. Formül yazımı gerçekten kolaylaştırılmış. Mesela x^3 yazdığınızda otomatik olarak x üzeri 3 notasyonuna çeviriyor.
Formüllerde değer aralıkları girebiliyorsunuz. Formüler x e bağlı y şeklinde yazılıyor.Mesela y=sin(x)/4 gibi.

Bu projeyi geliştirenler işini ciddiye alan kişiler ki eleman ilanı da vermişler. Herhangi bir gelir sağlıyorlar mı bilmiyorum ama daha performanslı işler çıkarmak için işlerine devam ediyorlar. Siteye girip denemekte fayda var. Siteye burdan ulaşabilirsiniz.

18 Ocak 2013 Cuma

GMap Image Cutter

Google Map Apisi kullanılarak yüksek çözünürlüklü resimleri web ortamında google mapte olduğu gibi gösterebilirsiniz. Bunu yapabilmeniz için resmi küçük parçalara ayırıp google apisini kullanmanız yeterli ancak kodlama kısmı biraz karışık olabilir. İnternette bunu çok güzel bir şekilde yapan bir araç var. Bu araca bu linkten ulaşabilirsiniz.  Bu araç javada yazılmış bir uygulama . Uygulamada bir resmi file sekmesinden seçiyoruz ve create butonuna basıyoruz. Yan tarafta bulunan bar ile resmi kaç parçaya ayrılacağını seçebiliyoruz. Create butonuna basıldıktan sonra program bir html dosyası ve resimlerin parçalarının bulunduğu bir klasör oluşturuyor. Html dosyasını açtığımızda google map uygulaması içinde bizim resmimiz gözüküyor olacaktır. Bu uygulama kullanarak yapılan örneğe bakabilirsiniz.

17 Ocak 2013 Perşembe

MySQL için tavsiye bloglar

MySQL kullanan biri olarak takip etmek istediğim blogların bir listesini oluşturuyorum. Bu bloglarda Mysqlin bir çok özelliği hakkında bilgi bulabilirsiniz. Bu blogların arasında Oracle'ın da bir bloğu bulunmakta. Veri tabanları hakkında performans ayarları, ölçeklenebilme gibi bir çok önemli konu hakkında detaylı bilgi edinebilirsiniz.


 Daha detaylı bir incelemeden sonra bu blogların sayısını artırabilir veya listeden kaldırabilirim. Yararlı olacağını umarım.

16 Ocak 2013 Çarşamba

MongoDB Tecrübesi

Bir yıldan fazla MongoDB kullanan kiip servisi kullandıkları bu teknojinin artı ve eksileri  yazmışlar. Aslında pek de memnun olduklarını söyleyemem ki zaten yeni teknoloji arayışlarına girişmişler. Sonuç olarak verilerinin %90 nından fazlasını  Riak ve PostgreSQL üzerine taşımışlar.
Kiip servisinin veri istatistikleri

  • Veri Boyutu: 240 GB
  • Toplam Döküman Sayısı: 85,000,000
  • Saniyedeki İşlem Sayısı: 520 ( okuma, yazma, gibi.)
Yazıya bu linkten ulaşabilirsiniz.

15 Ocak 2013 Salı

Cassandra NoSQL Veri Tabanı

NoSQL veri tabanları arasında en popüler olanları MongoDB ve Cassandra diyebiliriz. Cassandra veri tabanı facebook tarafından geliştirildi ve sonrasında Apache grubuna devredildi. Casandra veri tabanının genel özellikleri.Cassandra alt yapı olarak Amazon DynomoDB ve Bigtable a benzer.


  • Merkezi bir yönetim olmaması. Bütün veri tabanı birimleri peer to peer mantığında çalışır.
  • Replikasyon özelliği bulunması.
  • Herhangi bir server çökmesinde sistemin çalışmaya devam edebilmesi.
  • Veri tabanı yazma işlemlerinin hızlı olması ve ölçeklenebilmesi.
  • Bilgilerin gelişmiş bir key-value mantığında tutulması.
MongoDb ile temel farlılıklar verilerin saklanma biçimi ve cluster yapısı hakkındadır. MongoDB verileri JSON formatında döküman şeklinde tutulurken , Cassandra ise columm base ve hash table yapısını kulanır.
Cluster yapısında is MongoDB proxy server ve shard yapısını kullanırken Cassandra da proxy server bulunmaz , bütün sistem aynı birimlerden oluşur. Bu özellikle Cassandra ile bir sunucunun çökmesi diğerlerin işlevlerini etkilemez. MongoDB de mongos proxy server da çıkabilecek bir hata bütün sistemin durmasına neden olabilir.

12 Ocak 2013 Cumartesi

Basit bir kütüphane otomasyonu

Bir arkadaşın ricasıyla yazdığım basit bir kütüphane otomasyonunu paylaşacağım. Otomasyon C sharp ve MySQL kullanılarak yazıldı.
Otomasyon şu işemleri yerine getiriyor.

  • Kayıtlı bir kitabı kayıtlı bir kullanıcıya ödünç verme
  • Ödünç verilen kitabın geri teslim alınması
  • Kullanıcı ekleme ve editleme
  • Kitap ekleme ve editleme
Veri tabanı uygulaması geliştirmeye başlayanlar için iyi bir örnek uygulama olabilir.
Uygulamanın veritabanı için gereken dlller proje içinde yer almakta ancak Mysql .Net driver indirilmesi gerekiyor. MySQL .Net driverı bu linkten indirebilirsiniz.

Projeyi bu linkten indirebilirsiniz. Proje Visual Studio 2010 kullanılarak yapıldı. Herhangi bir sıkıntıda bana danışabilirsiniz. Verit abanında kutuphane veritabanı açmanız ve projenin içine attığım txt dosyadaki 3 tablonun scriptini çalıştırmanız gerekiyor. Tabiki çalışan bir MySQL veri tabanına sahip olmanız lazım . root kullanıcı kullanılarak bağlantı stringi oluşturuldu. İsterseniz ConnClass.cs dosyasından bu kullanıcıyı değiştirebilirsiniz.

9 Ocak 2013 Çarşamba

AppData Servisi

AppData , Facebook ,ios ve android  uygulamaları hakkında istatistik veri sağlayan bir servis. Bir uygulamanın günlük veya aylık sürecte ne kadar kullanıldığını takip edebiliyor ve bu kullanımlar hakkında detaylı bilgi edinebiliyorsunuz. Bu sayede hangi uygulamaların bu aralar popüler olduğunu kolaylıkta takip edebiliyorsunuz. Servisin sitesi http://appdata.com/ . Bu servisi uygulamanıza entegre edip detaylı istatistik veri edinebilirsiniz.
Bu ekranda  MAU(montly active user) tablosu bulunmakta. Görüldüğü üzere Zynga'nın oyun uygulaması bu ay zirvede. Geliştirici bazında ise yine Zynga birinci sırada. Farmville 2 nin gayet başarılı olduğu gözüküyor.
Yine bu ekranda bulunan uygulama ve geliştirici linklerinden detaylı verilere ulaşabilirsiniz.

Ebook FTP paylaşım

İnternette gezinirken nasıl olduysa bir ftp linki bulmuştum. Pek te nasıl bulduğumu hatırlamıyorum açıkçası.
İçinde yüzlerce kitap bulunuyor . Ftp ye burdan ulaşabilirsiniz. Bir çok bilişim teknolojisi ve programlama ile ilgili pdf formatında kitap bulunmakta. İnşallah erişimi kapatmazlar. Eğer kopimizm dinine mensup olsaydım bu paylaşımla cenneti garantilerdim :) .  Yararlı olur umarım.

Server ile PC ram farkı

Sanal makine üzerinde kuracağımız veritabanları ve application serverlar için fiziksel sunucumuzda ram sıkıntısı yaşamamak için ekstra ram ilavesi yapmayı düşünüyoruz. Şuandaki fiziksel sunucuda 8 gb ram ve XEON işlemci var. Ama bu servera toplam 10 dan fazla server yazılımları kurulması gerekecek. Bunların arasında HAProxy,Apache HTTP server,MySQL,MongoDB gibi server yazılımları var. Bu yazılımlardan veritabanı kısmında bulunanlar rami bolca kullanan uygulamalar. Bunun için ek olarak 8 gb ram daha ekleme yapılabilir diye düşündük. Server üzerinde bulunan ramler normal pc üzerinde olan ramlerden biraz daha farklı oluyormuş bunu ögrendim. 
Server ramleri ECC(correcting code memory) denilen bir özelliğe sahiplermiş. Bu özelikle hata kontrolü sağlayabiliyor ve bu hatayı düzeltebiliyormuş. Bundan başka özelliklere de sahip olabilir tabi ki .Benim ilgilendiğim taraf  bir de fiyatıydı bu ramlerin. PC için satılan 8 gb lık ramler 100 tl civarında iken server ramleri 600 tl civarında olması can sıkıcı bir durum.  Bu parayla bir PC kasası toplasam ve networkten bağlasam daha performanslı olur gibi geldi bana :) .

8 Ocak 2013 Salı

MongoDB Sayfalama problemi

Bu aralar MongoDB ile bir çok problemle karşılaşıyorum. Test etmek için veritabanına 17 milyondan fazla kayıt eklemiştim. Kullandığım MongoVue GUI programı ilk olarak fark ettiğim olay verilerin sayfalama ile gösterilirken son sayfaların  çok yavaş getiriliyor olması idi. 100 000lere kadar çok bir kasma yaşamasam da
milyonluk verilerin içinden son sayfalara ulaşmak çok kasıcı bir işlem olduğunu gördüm.
17 milyondan fazla kayıt bulunan bu collectionda ilk sayfalardaki veriyi mili saniyeler içinde çekebiliyorum.

Sol tarafta bulunan resim 14 milyon ile 14 milyon 9. kayıtların arasındaki kayıtları gösteriyor. Bu veriyi çekmek için aşağıdaki resimdeki gibi 32 saniye işlem yapıldı.

Bu işlemi birde konsol ekranından denedim.

db.urls.find().skip(14000000).limit(10);

Fakat bir değişiklik göremedim. Bununla ilgi internetten araştırmalarım sonucu bir çok kişinin aynı sorunla karşılaşmış olduğunu gördüm.
Herhangi bir veriyi aslında çok hızlı bir şekilde sorgulaya biliyorum. Özellikle de indexlenmiş alanlarda ama sayfalama gibi basit bir sorguda böyle bir sonuçla karşılaşmayı hiç ummazdım.

Flash oyun ne kadar kazandırabilir ?

Flash oyun programlama yapmak isteyenler ya da  uğraşanlar bu işten para kazanılabilir mi veya ne kadar kazanılabilir diye düşünebilirler. Bu işte de her işte olduğu gibi istikrar ve zaman ile iyi paralar kazanılabiliyor.
Bu işte gelir sağlama yöntemleri  oyun sponsorluğu, oyun içi reklam veya oyunu satmak gibi yöntemleri var.
Kısa vadede oyun sponsorluğu veya oyunu satmak  gelir sağlasa da eğer oyun biraz tutulan oyun ise reklam gelirleri güzel ve sürekli bir gelir kapısı sağlayabiliyor. Bu konu hakkında zamanında detaylı araştırma yapmıştım. Bu konu hakkında belki en açıklayı yazıya http://blog.elite-games.net/blog6.php/2008/08/01/overall-stats  bu linkten bakabilirsiniz. Yaptığı oyun listesini ,hangi oyundan ne kadar para kazandığını bu bloğunda yazmış.  5 yılda toplam 230 bin dolar kazandığını yazıyor ve şuanda sadece reklam gelirleri iyi bir sabit gelir sağladığını yazmış.
Yaptığı oyunların listesi .
  • Elite Forces:Jungle
  • Elite Forces:Afghan
  • Elite Forces:Pakistan
  • Elite Forces:Defense
  • Elite Forces:Conquest
  • Elite Forces:Clone Wars
  • Elite Forces:Warfare
  • Elite Forces:South Osetia
  • Joes Farm
  • Joes Last Stand
  • Rush Hour
  • Star Ship
Uğraşmak isteyenler için bir fikir vermiştir umarım.

7 Ocak 2013 Pazartesi

SEO'da neymiş?

Son zamanlarda çok popüler olan bu terim bazen bence çok abartılıyor. İnsanlar yazılarını yazarken bile seo ya uygun bir şekilde içerik hazırlamaya çalışıyor. Bir cümle içinde geçen kelimeler seçilerek daha ön plana çıkarılmaya çalışılıyor. Mesela ben seo kelimesinde yükselmek istiyorsam bold seo yazmam avantaj sağlıyormuş.  Bir de seo  diye link versem ohh ne ala. İşler iyice mekanikleşmiş.  Ne yazdığından çok nasıl seo makalesi yazarım diye düşünenler var. Bir sitede veya blogta en etkili seo  sosyal imleme ve url rewrite yöntemleri olabilir. Bunun yanında özgün içerik hem seo için hem de ziyaretçilerin siteye ilgi göstermesini sağlayacak en önemli unsurlar olduğunu düşünmekteyim. Sonuç olarak popüler site ve blogların bu seviyelere böyle mekaniksel işlerle geldiğini pek zannetmiyorum. Etkisi yok demiyorum ama abartılıyor bence. Bir yazı yazarken arama motorlarını da bir yandan düşünmek garip olsa gerek.

Bunlarda wikipedia'dan alınan yöntemler. Artık kim yazmışsa .


Metotlar

Optimizasyon sürecine ilişkin aşamaların bazıları şunlar olabilir:

  • Statik IP
  • W3C geçerlemesi
  • LSI tekniği ile eşdeğer içerikli kelimelerin içeriğe yansıtılması
  • Sayfalara uygun başlıklar seçilmesi (Title)
  • robots.txt dosyasının kullanımı
  • Meta etiketlerin kullanımı
  • İçeriğin özgün olması (başka sitelerden kopyalanmamış olması)
  • Site-içi dolaşımının düzenlenmesi
  • Sitenin içeriği ile alakalı başka sitelerden bağlantı toplanması
  • Sitenin seçilen anahtar kelimelerinin site içeriğindeki yoğunluğunun belirlenmesi
  • Arama motororu örümceklerinin siteyi daha hızlı taraması için site haritası oluşturmak
  • İlgili anahtar kelimeleri kalın veya italik gibi özellikler kullanarak önplana çıkarmak
  • Tablo düzeni ile tasarlanmamış, CSS tabanlı sitelerin oluşturulması
  • Bir sayfadaki link sayısının 100'ün altında tutulması
  • Sitedeki tüm metinlerin site geneli ile uyumlu olması
  • 404 sayfalarının çalışan bir sayfaya yönlendirilmesi

Alan adı seçimi 

  • Arama motoru optimizasyonu çalışmanızda domaininiz oldukça büyük etkisi vardır. Bu faktörler:
  • Alan adının uzun süreden beri kaydedilmiş olması
  • Alan adının bitiş süresinin en az 3 sene uzaklıkta olması
  • Alan adının ilgili anahtar kelimeleri içermesi
  • Alan adının üçten fazla ayıraç(-) içermemesi gerekir. Bu tip durumları Google ve benzeri arama motorları, siteyi zararlı olarak işaretleyebilirler.

5 Ocak 2013 Cumartesi

Oyun programlamaya başlamak isteyenler için tavsiyeler

Yazılımla uğraşan bir çok kişi oyun programlamaya da merakı oluyor. Aslında oyun da sonuç olarak bir yazılım. Oyun programlamaya başlamak isteyenlerin genelde kafasına takılan sorular , oyun programlamaya nasıl başlamalıyım ve hangi dilleri kullanmam gerekir türünden sorular oluyor. Bu soruyu soran kişinin ilk olarak ne tür oyunlar yapacağına karar vermesi gerekir. Bunlar browser tabanlı oyunlar,flash oyunları,mobil oyunlar, pc oyunları  olabilir. Sonrasında bu oyunlar 2d mi yoksa 3d mi olacak buna karar vermesi gerekir.

2d oyunlarla başlamak daha kolay olabilir ve tek kişi çalışılacaksa 3d projeler altından kalkılamaz duruma gelebilir. Bazı arkadaşlar gaza gelip MMORPG yapalım diye forumlara ilan veriyorlar. Ama MMO oyun oynamaktan başka bir tecrübesi olmayan bu arkadaşlar boşa vakit harcıyorlar. İşe yarar bir MMO oyun yapmak için network, yapay zeka ,oyun dizaynı gibi kendi içinde uzmanlık ve araştırma gereken  işlerin altına girmek gerekir. Bunun yanında grafik tarafında konsept tasarım ,modelleme ,animasyon  işini yapacak kişiler gerekiyor.

Bu nedenlerden dolayı böyle gaza gelmektense daha mantıklı ilerlemek gerekiyor. Ben mesela şimdiki aklım öğrencilik zamanında olsaydı flash oyun programlama işine girerdim. Şu aralar mobil oyun programlama revaçta olsa da artık mobil uygulama marketleri çöp haline gelmeye başladı. Kullanıcıya uygulamanızı ulaştırmak gerçekten zor iş olmaya başladı. Flash bir oyun yaptığınızda bunu kolay bir şekilde 100 000 lerce kişiye ulaştırabiliyorsunuz. Biraz işe yarar bir uygulama yaptıysanız reklamdan gelir de elde edebiliyorsunuz.
Bu anlamda Mochi Ads sitesinden bilgi edinebilirsiniz. Bunun yanında uygulamanıza sponsor bulabiliyorsunuz.
Bu sponsorlar genelde sitelerine trafik sağlamak için bunu yapıyorlar.

Bazı kişiler flash öldü diyorlar ancak browser oyunlarında flasha herhangi bir rakip hala yok. Ne HTML5  performansı yeterli nede Unity plugini yeterince yaygın.
Flash oyun yapmak için Action script 3 programla dili bilmeniz yeterli. Bir çok ücretsiz araç bulunmakta.
Ide olarak Flash Develop yaygın kullanılıyor , Bunun yanında ücretsiz grafik kütüphaneleri mevcut.Starling 2d grafik motorlarından biri Angry Birds yapımında kullanılmış. 3d grafik motorlarının sayısı Flash 11 donanım desteğiyle de artmış bulunmakta. Bunların yanında bir çok oyun motoru flash export seçeneği eklemeye başladı. Unity3d de bu motorların içinde yer alıyor.

Bazı programcılar ise PC platformunda oyun yapmak isteyebilir. Bunun için hangi dilleri kullanmamız gerekir diyebilirler. Büyük firmalar c/c++ kullanıyor olabilir ama yeni başlangıç yapan birisi tek başına bu dillerle bişeyler yapması zor.  Bunun için oyun motorlarını kullanmalarını tavsiye ediyorum.  Oyun mantığını kavrayıp 1 -2 proje gerçekleştirdikten sonra  zaten size performas mı kolaylık mı gerekiyor  bunun kararını verebilirsiniz.

Oyun programlama yapmaya başlamadan bile performans işine çok takıp üretimde bulunamayan kişiler var.
Onun için hangi dil ve motoru seçmeliyim gibi şeylere zaman çok harcamayın derim.


Araştırmayı planladığım teknolojiler.

Araştırmayı planladığım bazı teknolojiler var. Genel olarak zaten bilgim olan bu teknolojiler hadoop(Eski distributed systems dersinde bol bol muhabbeti geçmişti) , cassandra (dağıtık NoSQL veritabanı) , bunlara ek olarak apache grupun geliştirdiği diğer projeler pig,hive gibi hadoop alt yapısını kullanan teknolojiler.
Muhtemelem diğer teknik bloğumda bunlarla ilgi makaleler yazarım araştırdıkça. Zor tarafı ise bu teknolojilerin kurulum ve testleri yapmak olacak. Genel olarak ölçeklenebilir yapılar olduğu için birden fazla instans veya server kurmak gerekli olacak. Testi için veri girişleri  yapılacak ve driver kurulumları gerekecek. Linux versiyonu bir işletim sistemi kullanılacak.


MongoDB hakkında

MongoDB , NoSQL veritabanları arasında en popüler olanlardan. MongoDB ölçeklenebilirlik açısından güzel bir çözüm sunsa da bu sistemi yönetmek biraz zor olabilir. Veritabanın read/write performansını artırmak için shard özelliği ile yatay ölçekleyebilirsiniz. Ancak bu özelliği kullanmanız için önerilen sistemde 1 mongos proxy server, 3 config server, 2 shard(replica set herbiri  mongod server) toplam 10 server kurulumu yapmak gerekiyor. Veriler shardlar üzerinne config serverlarda bulunan ayarlara göre dağıtılır. Yani her hangi bir shard çöktüğünde verilen bütününe ulaşılamaz. Bu nedenle replica set kullanımı önerilir. Replica set 3 mongod instancedan oluşur. 1 primary, 2 secondary mongod belirlenir. Primaryde çıkan bir sorunda secondary devreye otomatik geçebilir. Başangıç projeleri için bu nedenle , shard kullanımı çok gerekli değilse   pek kullanışlı olmayabilir. Bu özellikler zaten yüksek trafiiğe sahip servisler için düşünülmüş bir yapıdır. Ayriyeten böyle bir alt yapı için çokça masraf ortaya çıkar.MongoDB'de diğer NoSQL veritabanları gibi ACID özelliklerini pek sağlamıyor. Bir server çökmesi sonucu veri kaybı yaşayabilirsiniz.Veriler diske yazılmadan hafızan bile çekilebilmesi performans açısından iyi olsa da kritik veriler için kötü sonuçlara sebep olabilir. Foursquare 2 yıl önce böyle bir durumla karşılaşmış ve 11 saat boyunca servis sağlayamamıştı.

Slide Share uygulaması

Slide share uygulaması gerçekten güzel bir uygulama. Slayt dosyalarını online olarak görüntüleyebiliyorsunuz.
Ben yararlı bulduğum bir kaç microsoft power point sunumunu yüklemiştim. Sonrasında pdf dosyası da desteklediğini gördüm. Gerçekten güzel düşünülmüş. En kötü özelliği benim için Quora hesabımı bozması oldu. Yine site içerisinde başkalarını paylaştığı diğer slaytlara da erişebiliyorsunuz. Bir konu hakkında araştırma yaparken benzer konular hakkında diğer slaytlara erişebiliyorsunuz. Bu yazımdada bir slaytı paylaşacağım bakalım sıkıntı olacak mı :)
İyi bir sorun yok gibi yazımı yazarken gözüküyor. Rest ve SOAP web servisleri hakkında bir slayt. Konuyla ilgi biraz araştırma yapmıştım. Bu sebeble slide share'e upload  etmiştim. Gerçi daha sonra bu slaytın slide sharede zaten olduğunu gördüm ama bu slaytları kendi hesabınızla takip edebiliyor musunuz bilmiyorum ?

Askere gitmek gerek

Mayısta tecil sürem doluyor ve askere gitmem gerekiyor. Tabi ki ertelemek için çeşitli yöntemlere baş vurabilirim. Açık öğretime yazılmak veya yüksek lisans yapmak bunlardan bazıları. Peki bunu yapmalı mıyım. Şirkette gerçekleştirilen projeler için bana gereksinim duyuluyor. Ama benim de bir an önce bu askerliği aradan çıkartmam gerekiyor. Peki ertelersem ne olur?  Şirket için fedakarlık etmiş olurum, biraz masraf etmiş olurum ve olur da şirketten ayrılırsam başka işe girmek için askerlik önümde engel olarak kalır. Son durumda patronun ayak üstü iş halletme politikaları yüzünden , böyle bir fedakarlığı yapmaktan vazgeçer gibiyim. Türkiye'de ne zaman kurumsal kültür oluşacak merak ediyorum. Deneme yanılma yöntemiyle işler yapılmaya çalışılıyor. Ben yaptım olacak :)  kafasında  herkes. Bundan dolayı  daha profesyonel çalışanlarla iş yapmak belkide en iyisi , tabi ki öyle yerler de varsa. Zaman duygusal kara vermekten çok mantıksal kararlar verme zamanı. En azından son durumda böyle düşünüyorum.

4 Ocak 2013 Cuma

Crawler Sonuçlarım

Php ve MongoDB ikilisini denemek için yazdığım crawler uygulamasını deniyorum. Muhtemelen 4-5 saat sürekli çalıştı  ve çalışmaya devam ediyor. App Store için yazmıştım  bu uygulamayı. App Store için derken onu crawl etmek için yani. İçindeki linkleri ve uygulama bilgilerini parse ediyor ve MongoDB'ye kaydediyor.
Şuanda MongoDB yönetimi için MongoVue GUI yazılımını kullanıyorum ve çektiğim ürün bilgisi sayısını paylaşıyorum.

Şuandaki toplam ürün bilgisi 9221 olarak görülüyor. Bunun dışında ürün bilgisi çekilmeyenler le birlikte toplam 33000 den fazla kayıt bulunmakta. Ve artmaya devam ediyor. Ürün ile ilgili uygulama adı,üretici,resim  adresi,ücreti ve boyutu gibi özelliklerini de çekiyorum. Burda bu işlemi hızlı çalışmasını kısıtlayan faktör ne php parsing işlemleri nede veritabanına yazma ve kontrol işlemleri. Tamamen internet bağlantısı ve Appstore sistesinin yanıt hızıyla lakalı. İşlemci kullanımım%1-2 civarında olması bunu gösteriyor.

App Storeda toplam 700 000 den fazla uygulama varmış. Ben bütün veriyi çekmek istemiyorum aslında . 100 000 uygulama verisi çeksem yeter bana. Bu kadar uygulama verisi çeksem muhtemelen 200 000 den fazla ürün linkide çekmiş olurum. Eğer bir yerden sonra yeni uygulama linki bulma sıkıntısı yaşanmazsa.

Bende bu arada bu verilerle MongoDb de değişik denemeler yapmayı planlıyorum. Sorgulama diline daha hakim olmam gerekiyor. Map Reduce işlemleri nasıl işliyor tam olarak anlamam gerekiyor. Ayrıca çeşitli performance testleride yapabilirim. Ürünlerin bilgisini kullanarak belki ististiksel bilgiyede ulaşabilirim.

Crawler hakkında daha detaylı bilgi için http://www.murat-cakal.com/2013/01/03/php-crawler-programlama/ bakabilirsiniz.

3 Ocak 2013 Perşembe

Takip ettiğim bir kaç blog

Bu aralar ölçeklenebilir veritabanları ve sistemler üzerine bolca araştırma yaptığım için bir çok blog ve websitesini araştırmam gerekti. Bu bloglar arasında en populeri http://highscalability.com/. Bu blogta bir çok şirketin sistem alt yapısı hakkında ayrıntılı yazılar var. Bunlar arasında google ,facebook, twiter gibi şirketler de var. RightScale cloud sistemler için destek veren bir firma ve bu firmanın blog sayfasıdanda kaliteli bir çok makale bulunmakta. http://blog.rightscale.com/  adresinden bloğa erişebilirsiniz. Quora üstünden eklediğim
Venu Anuganti de zamanında mysql veritabanı geliştirmesinde çalışmış bir eleman. Şuanda kendi kurduğu Scalein firmasında veritabanı hakkında danışmanlık sağlıyor.http://venublog.com/ elemanın bloğu. Son olarak yine veritabanı konusunda bloğunda birçok makale yayınlayan Pinal Dave. Elemanın bloğunda 2000 den fazla yazı yayınlamış(iyi çalışmış maşallah). http://blog.sqlauthority.com/ Pinal'in bloğu. Veritabanı ve ölçeklenebilirlik hakkında kaliteli bloglar arıyorsanız incelemenizde fayda var.


Quora hesabımı bozdum

Quora bir çok konu hakkında işin profesyonellerine soru sorabileceğiniz sosyal bir platform. Ben de yeni kullanmaya başlamıştım ve bir kaç gönderide bulunmuştum. En son gönderimde slide share hesabımdaki bir slaytı paylaşmaya çalışınca ,sistem saçmaladı . Muhtemelen arka planda çalışan javascript kodları , bu değişik inputa nasıl cevap verebileceğini bilmiyor. Aslında bir iframe içinde uzaktan slide göstermekten ibaret bişeydi.
Şimdi o postum sistemde bir önyazı olarak  gözüküyor ve önizleme yapacakken saçmalıyor. Yeni post butonu yanıt vermiyor. Quora'ya bunu bildirmek istedim, biraz siteyi inceledim  destek verecek bir link aradım ama bulamadım. Baya şaşırdım açıkçası. Kocaman sosyal bir platformda böyle bir durumda bunun için bir destek olmalı, varsa da kolay ulaşılmalı bence.

Bu arada bu platformun benzerini türklerde yapmış http://www.sorula.com/ ama çok verimli olduğunu söyleyemem. Türkiyede herkes herşeyi bildiği için kim kime ne diye danışsın :) . Yinede belli bir kullanıcı sayısına ulaşırsa verimli olamaya başlayabilir. Yoksa site sahipleri bütün soruları cevaplamaya çalışırsa işleri zor :) .

1 Ocak 2013 Salı

Veritabanı sistemleri

Veritabanı sistemleri ile ilgili yeni bir blog tutmayı düşünüyorum. Daha resmi bir site görünümde olacak .
İnsan kendi isminde blog açınca konular bazen saçma yerlere gidebiliyor ve tam bir odaklanma sağlanamıyor. Yazım kurallarını bile tam olarak bilmeyen ben belki birazda yazım kabiliyetimi geliştiririm bu blogta. Peki nerden çıktı bu veritabanı olayı sen oyun şirketinde çalışıyorsun diyebilirsiniz ama benim bundan sonraki rolüm oyunların server taraflı teknolojileriyle ilgilenmek olacak. Blog için teme bile seçmedim en sade şekilde kullanmayı düşünüyorum. Bloğun adresi http://veritabanlari.com/ . Düzenli bir şekilde blog tutmak benim için açıkçası zor bir durum ancak insanda bir düzen duygusu uyandırıyor ve benim bu aralar ihtiyacım olan bir şey bu.