İ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.
9 Ocak 2013 Çarşamba
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.
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 .
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
7 Ocak 2013 Pazartesi
SEO'da neymiş?
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.
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.
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.
Kaydol:
Kayıtlar (Atom)


