Sayfalar

14 Nisan 2016 Perşembe

İzlediğim Açık Kaynak Projeler

Genel olarak .Net teknolojilerini kullanmaktayım. Eğer bu konuda piyasada durumlar nasıl ,hangi patternler nasıl kullanılıyor diye merak ediyorsanız açık kaynak projeler size yol gösterebilir. Githup'ta .Net konusunda bir çok popüler açık kaynak projeler bulunmakta. Hatta artık bu konuda Microsoft bile katkıda bulunuyor. Benim takip ettiğim ve incelediğim genel olarak web projeler.
Bunların başında NopCommerce,MVCForum,YAFNET gibi projeler bulunmakta.

NopCommerce adından da anlaşıldığı gibi bir e-ticaret projesi.  ASP.NET(MVC) kullanılarak geliştirilmiş bir proje. Plugin alt yapısına sahip.ORM olarak Entity Framework kullanılmış. Bir buçuk milyondan fazla indirilmiş bir proje.

MVCForum bir forum sitesi ancak StackOverFlow mantığında bir proje. MVC ve Entity Framework kullanılarak geliştirilmiş.
Genel özellikleri:
  • Çoklu dil özelliği
  • Puan sistemi
  • Postları düzenleyebilme
  • Badge sistemi (StackOverflowdaki gibi)
  • Roller
  • Taglama
  • RSS Besleme
  • Emotion
  • Dosya ekleme
  • Oylama sistemi (Kimin oyladığını görebiliyorsunuz)
YAFNET projesi de bir forum projesi. ASP.NET kullanılarak geliştirilmiş. Projenin demosundan genel özelliklerini inceleyebilirsiniz.

Projeler açık kaynak olduğu için hem kodunu inceleyebilirsiniz hem de kurup kendi işiniz için kullanabilirsiniz. 


6 Nisan 2016 Çarşamba

Kitap Severler İçin Kitap Öner

Bu aralar boş zaman buldukça kitap okuyorum. İnternet üzerinde kitap önerisi için bulabileceğiniz bir çok web sitesi var. Yeni açılan kitaponer.com sitesi de bunlardan biri. Ancak sitenin tasarımı ve kullanımı gayet güzel. Henüz kitap veritabanı çok geniş olmasa da zamanla o sorunu da aşacaklarını düşünüyorum.  Site içinde yapacağınız işlemlerde puanlama sistemi mevcut. Her yorumunuz ,beğeniniz sistem üzerinde puanınızın artmasını sağlıyor. Site yeni açıldığı için yapacağınız işlemlerde top 10 a girmeniz kolay.

Entity Framework VS SQL

Projelerimde genel olarak kullandığım teknolojiler web server tarafında ASP.NET MVC  veritabanı SQLSERVER ve kodlamayı  C sharp kullanarak gerçekleştiriyorum.

Entity Framewok 'e yeni geçen biri olarak kolaylıklarından ve sql bazlı sorgulama mantığıyla arasındaki genel farklılıklardan bahsetmek istiyorum. Aslında bu karşılaştırmaya genel olarak ORMler ile SQL arasındaki karşılaştırma diyebiliriz.

ORMlerin en büyük kolaylıkları sql sorgusu yazmadan veritabanı işlemleri yapabilmenizi sağlamasıdır.  Domain Driven Development yapısı için uygundur.
Code-First çalışıyorsanız bütün gerekli işlemleri projenizin içine gömebilirsiniz.
Ancak bazı durumlarda bu özellikler performans konusunda sıkıntı yaratabilir.
Entity tabanlı çalışan bir sistem olduğu için hiç gerekmeyen özellikler her daim sql server tarafından çekilir. Uzak sql server kullanıyorsanız bu baya bir sıkıntı oluşturabilir.
Bunların dışında prosedürlerin performansı büyük çaplı sorgularda çok daha iyi bir sonuç için kullanmanız gerekebilir.

Mesela benim geliştirdiğim bir araç takip uygulamasında günlük 15 milyon kayıt kaydediliyor. Bu data boyutunda olan verilerinizin işlemlerini linq sorgularıyla client tarafta yapamazsınız. Veriyi listeye dolduramazsınız. Sistem kaynakları iflas edebilir. Sql server gibi bir veritabanı sunucusunun görevi burada büyük bir anlam taşımaktadır.

Verinin büyüklüğünden çok ne kadar zaman aralığında bu sorguların çalıştırıldığı önemlidir aslında.
Bir günlük veri çekebilirsiniz bir saatlikte çekebilirsiniz. Gerekli indexleri ayarladığınızda sorgularınız çok hızlı bir şekilde çalışabilir.

Kısacası Entity Framework kullanıyorsanız bile altında sql sorgularının çalıştığını unutmamak gerekir. Onun için her daim sql bilgilerinizi taze tutmanız önemlidir.


30 Ekim 2014 Perşembe

PDKS Nedir?

PDKS(Personel Devam Kontrol Sistemi) personellerin giriş ve çıkışlarının takibi ve raporlanması için kullanılan bir sistemdir. Takip ve tanımlama işlemleri kart okuyucular veya biyometrik cihazlar ile yapılabilir. Bunun için kartlar id olarak veya direk personel verisini tutacak şekilde yapılandırılabilir. Biyometrik cihazlarda ise personelin parmak izi,yüz tanımlaması gibi özelliklerinin cihazlara tanımlaması yapılır.  Bu yazılım sayesinde personelin takibi kolaylaşır ve insan hatasını minimize eder.
Şirketler genel olarak bu sistemleri çeşitli raporların oluşturulması için kullanırlar. Belli başlı raporlar verileri şöyle sıralayabiliriz.

  • Puantaj hesabı.
  • Geç gelen,erken çıkan , devamsız ve fazla mesai raporları.
  • Günlük , haftalık , aylık çalışma saatleri.
  • Günlük ve yıllık izin
Bu sistemden elde edilen veriler bordro yazılımına aktarılabilir.

Sistem nasıl çalışır ?
  • Pdks donanımları turnike istemlerine bağlanır.
  • Pdks yazılımı ve veritabanı kurulur.
  • Pdks donanımı ile yazılımı haberleşmesi sağlanır.
  • Personelin takibi için gerekli tanımlamalar yapılır. Kart tanımlaması ve dağıtımı yapılır veya  biyometrik cihazlarla personelin parmak izi veya yüz gibi kişinin biyo verisi sisteme tanıtılır.

ASP.NET MVC Hakkında

Web uygulamaları için bu aralar daha çok .NET teknolojilerini kullanıyorum. Daha önceleri ASP.NET web form üzerinde uygulama geliştiriyordum. Ancak yeni teknolojilere uyum sağlama ve özelliklerini anlayabilmek için ASP.NET MVC kullanmaya başladım. Elimdeki yeni projeler için kullandıkça mantığını da kavramaya başladım. Ancak bazı alışkanlıkları terketmek bazen zor olabiliyor. Özellikle  web formlardaki postback olayı bazı işleri çok kolaylaştırıyordu. Ancak performansı kötü etkileyebilecek bir durumdu. Yinede sayfayı yenilediğiniz de form verilerinin dolu gelmesi işinizi çok kolaylaştırabiliyor .

Aslında web programcılığın temelinde stateless bir mimari bulunmakta. Bu durumu ASP.NET viewstate ile çözüyordu. MVC'de ise bu durumu kendiniz kodlama ile halletmeniz gerekiyor. Ancak bu beni client  tarafında sorunları çözmeme neden oldu.  Bütün  validation olaylarını javascript ile hallet bir sıkıntı yoksa servera post et. Tabi bu biraz güven açığı oluşturabilecek bir durum. Ancak bu sistemi dışarı kapalı ve bir kaç kişinin kullanacağı uygulamalarda sıkıntı çıkaracağını pek düşünmüyorum.

Ayrıca MVC ile Entity Framework daha koordineli çalışmakta. Ancak ORM araçları bana biraz ters gelmekte açıkçası. SQL dili ile sorgu tabanlı çalışmak çok daha esnek olduğunu söyleyebilirim.
Özellikle büyük verilerin bulunduğu tablolarda işlem yapmak için tam olarak nasıl çalıştığını bilmediğimiz Linq kütüphanesini kullanmak başımı ağırtabilir düşünüyorum. Küçük işler için bazen çok kullanışlı olabiliyor benim için.

Ayrıca web programlamasında artık mümkün olduğunca ajax sorgularıyla çalışmak gerekiyor. Kullanıcı her yapacağı değişiklik için sayfanın yenilenmesi(sadece sayfanın titremesi bile) sıkıntı yaratabiliyor. Uygulalar için kullandığım gridler artık tamamen javascript tabanlı. Telerik Kendo UI kütüphanesi oldukça kullanışlı bu işler için. Ancak lisans gerektiren bir kütüphane.

29 Ekim 2014 Çarşamba

Piyano Metodları

Bu aralar müzikle uğraşmak istiyorum. Önceden beri aklımda klavyeli bir enstrüman öğrenmek vardı.
Yavaştan denemelere başladım ancak , direk olarak belli parçaları çalmaya başlamaktansa işin metolojisinide öğrenmeye çalışacağım. Diğer türlü pek bir ilerleme katetmek biraz zor görünüyor.
İnternette http://www.akademimuzik.com.tr/default.asp?page=content&content_id=63 adresine güzel e-kitaplar bulunmakta. Umarım zaman ayrırıp bir ilerleme katedebilirim.

10 Nisan 2013 Çarşamba

Bombermine

Çok güzel düşünülmüş bir oyun . Bomberman oynunun MMO tarzı diyebilirim. Oyna takma adınızı yazarak direkt girebiliyorsunuz. Oyunda aynı ayna bir çok kişiyle bir haritada bomba döşeyerek saldırı yapıyorsunuz. Grafikler oldukça güzel. Haritanın sonunu göremedim. Bu özellik aslında aklımı karıştırmadı değil.


Tavsiye ederim.

Bu oyunu bombermine adresinden oynayabilirsiniz.

25 Şubat 2013 Pazartesi

Php Geocoding Kütüphanesi


Web servislerin sunduğu Geocoding hizmetlerini incelerken bir kütüphane ile karşılaştım. Bu kütüphane bir çok Geocoding servisini tek bir çatı altında toplamış. Alt seviyede end point tanımlamaları yapılmış. Size sadece  gerekiyorsa Api key gibi parametreleri oluşturmak kalıyor.  Desteklediği servislerin listesi şu şekilde.



  • FreeGeoIp as IP-Based geocoding provider;
  • HostIp as IP-Based geocoding provider;
  • IpInfoDB as IP-Based geocoding provider (city precision);
  • Yahoo! PlaceFinder as Address-Based geocoding and reverse geocoding provider;
  • Google Maps as Address-Based geocoding and reverse geocoding provider;
  • Google Maps for Business as Address-Based geocoding and reverse geocoding provider;
  • Bing Maps as Address-Based geocoding and reverse geocoding provider;
  • OpenStreetMaps as Address-Based geocoding and reverse geocoding provider;
  • CloudMade as Address-Based geocoding and reverse geocoding provider;
  • Geoip, the PHP extension, as IP-Based geocoding provider;
  • ChainProvider is a special provider that takes a list of providers and iterates over this list to get information;
  • MapQuest as Address-Based geocoding and reverse geocoding provider;
  • OIORest as very accurate Address-Based geocoding and reverse geocoding provider (exclusively in Denmark);
  • GeoCoder.ca as Address-Based geocoding and reverse geocoding provider (exclusively in USA & Canada);
  • GeoCoder.us as Address-Based geocoding provider (exclusively in USA);
  • IGN OpenLS as Address-Based geocoding provider (exclusively in France);
  • DataScienceToolkit as IP-Based geocoding provider or an Address-Based provider (exclusively in USA & Canada);
  • Yandex as Address-Based geocoding and reverse geocoding provider;
  • GeoPlugin as IP-Based geocoding provider;
  • GeoIPs as IP-Based geocoding provider;
  • MaxMind web service as IP-Based geocoding provider (City/ISP/Org and Omni services);
  • Geonames as Place-Based geocoding and reverse geocoding provider.
  • Benim ilk başta denediklerim Google ve MapQuest servisleri oldu. Herhangi bir Api key gerektirmeden deneyebilirsiniz. Projenin sayfasına bu linkten ulaşabilirsiniz. Google servisi oldukça detaylı bir sonuç listesi sunuyor. MapQuest aşağıdaki gibi bir json dökümanı sunuyor. 


{
  • results:
    [
    • {
      • locations:
        [
        • {
          • latLng:
            {
            • lng36.325898,
            • lat41.289354
            },
          • adminArea4"İlkadım",
          • adminArea5Type"City",
          • adminArea4Type"County",
          • adminArea5"Samsun",
          • street"",
          • adminArea1"Turkey",
          • adminArea3"Samsun",
          • type"s",
          • displayLatLng:
            {
            • lng36.325898,
            • lat41.289354
            },
          • linkId0,
          • postalCode"",
          • sideOfStreet"N",
          • dragPointfalse,
          • adminArea1Type"Country",
          • geocodeQuality"CITY",
          • geocodeQualityCode"A5XAX",
          • adminArea3Type"State"
          }
        ],
      • providedLocation:
        {
        • location"samsun"
        }
      }
    ],
  • options:
    {
    • ignoreLatLngInputfalse,
    • maxResults1,
    • thumbMapsfalse
    },
  • info:
    {
    }
}

21 Şubat 2013 Perşembe

Güneş Sistemi Similasyonu

Webte Güneş sistemi  similasyonu ile ilgili bir çok uygulama bulabiliyorsunuz. Şirkete gelen stajyer öğrencilerden birini bitirme tezi Güneş sistemi  similasyonu idi. Benimde ilk aklıma gelen http://haritaaraci.com/3d_gunes_sistemi.aspx adresindeki örnek geldi. Unity3d ile bu tür uygulamalar yapmak çokta zor değil aslında. Buradaki asıl sorun Güneş sistemindeki gezegenleri zamana göre rotalarında seyir etmesini sağlamak. İnternette bu hesaplamalar ile ilgili detaylı hesaplama verileri mevcut. Benim gözüme çarpan http://www.stjarnhimlen.se/comp/ppcomp.html sayfası oldu.  Ve son olarak flash ile yapılan güzel bir simulasyon uygulaması paylaşmak istiyorum. http://www.theplanetstoday.com/ bu siteden uygulamaya erişebilirsiniz. Sağ üstteki butona basarak çeşitli ayarlara ulaşabiliyorsunuz. En üsteki bölümde zamanım akış hızını artırabiliyorsunuz.

20 Şubat 2013 Çarşamba

WPF Programlama

Bir arkadaşımın interaktif cd uygulaması  için benden yardım istemesi nedeniyle WPF programlamayla ilgili araştırma yapmaya başladım. WPF açılımı Windows Presentetion Foundation. Normal de desktop programlar için windows form kullananan biriyim. Ancak daha görsel işlemler için WPF açıkçası daha kullanışlı. Görsel arayüz için ayrı bir katman kullanıyor. Görsel thema oluşturma imkanı sağlıyor. Piyasada bu tür işler daha çok flash tarzı teknolojilerle yapılıyor aslında. Ama C sharpa daha yatkın biri olarak WPF kullanmaya karar verdim. Şimdilik en büyük problem WPF desteğinin PClerde ne kadar desteklendiğini bilmemem. Yani ben bu teknoloji ile yazdığım programı hangi  Platformlarda kullanabilirim bu çok önemli. .Net 3.5 ile bu teknolojinin geldiğini biliyorum yanılmıyorsam.

İnternette bu  teknoloji ile ilgili çeşitli kütüphaneler bulabiliyorsunuz. Ben image button ve sayfa geçişleri için bir araştırma yaptım. Daha göze hitap eden uygulamalar için önemli olabilir.
Codeprojectte sayfa geçişleri için bir kütüphane buldum. Bu linkten ulaşabilirsiniz. 
Image Button için ise codeplexte bir kütüphane bulunmakta. Bu linkten ulaşabilirsiniz.

MongoDB Embed Doküman İşlemleri

MongoDB ile uzunlu soluklu online oyun projemizin alt yapısını oluşturmaya çalışıyorum. MongoDB nin veritabanı tasarım mantığını ısınmaya başladım. Ancak bazen sorgulama işlemleri için çeşitli araştırmalar yapmam gerekiyor. SQL diline yatkın olan biri olarak bu yeni sorgulama işlemleri ilk başta açıkçası zor geliyor. Ayrıca her ne kadar MongoDb nin kendi sitesinde detaylı döküman olsa da tam olarak istediğinizi bulmak için yabancı forumlarda araştırma yapmak gerekiyor. Temel collection yapılarını oluşturmak ve bu collectionlarda yapılan temel sorgular ekle,güncelle,bul,sil işlemlerini oluşturmak çok zor olmasa da dokümanda ağaçlanma başladığı zaman işlemler biraz daha zorlaşıyor.


{
_id:"5432af324432eaf43243"
name:"murat",
password:"12345"
mail:"muratsalweb@gmail.com"
}

Yukarıdaki yapıdaki basit döküman yapısında işlem yapmak kolay bir iş.

{_id: '4eb79ee1e60fc603788e7259',
Name: 'name', 
Subsidiaries: [
  { _id: '4eb79eeae60fc603788e7271',
   Location: 'location1'},
  { _id: 'subid2',
   Location: 'location2'},
]}

Yukarıdaki bir yapıda ise bir döküman içinde array döküman bulunmakta işte burda işler biraz karıştırıyor. Gerçi  mantığını öğrendikten sonra çokta zor değil açıkçası. Bunun gibi embed döküman yapısındaki collectionlarda veri işlemleri nasıl yapılabildiği hakkında diğer bloğumda yazı yazmak istiyorum zamanım olursa.

16 Şubat 2013 Cumartesi

Web Site Performans Test Araçları

Web sitelerin yüklenme hızı ziyaretçiler ve arama motorları için önemli özelliklerden biri. Web sitenin hızını etkileyebilecek bir çok etken bulunmakta. Bunlar genel başlıklarla şöyle sıralayabiliriz.

  • Kod çalışma zamanı.
  • İstek yapılan sayfanın boyutu.
  • İstek yapılan sayfanın içinde bulunan kaynak dosyaların boyutları(resim,javascript,css gibi)
  • Server yoğunluğu.
  • Verilerin cachelenmesi.
  • Verilerin sıkıştırılması
Bu konu hakkında belki ileride ayrıntılı bir yazı yazabilirim. Asıl konumuz web sitelerinin performans testi için kullanabileceğimiz online araçlar. Pingdom aracından önceden bahsetmiştim. Bu araçların toplu olarak listesi şu şekilde.

4 Şubat 2013 Pazartesi

Android Programlama İçin Online Dersler

Android programlama ile ilgili Türkçe kaynak bulmak zor. Bir kaç sitede video eğitimler bulunsa da  çok yetersiz. İngilizce video derslerin bulunduğu learnerstv sitesinde güzel eğitim videoları bulunmakta. Ben de bu sitedeki eğitim videolarına başladım. Anlatılış oldukça akıcı ve 5-10 dakikalık videolara bölünmüş dersler bulunmakta.  200 parçadan oluşan bu dersleri bitirmeye çalışacağım. Eğer Android programlama ile uğraşmayı düşünüyorsanız bu linkten dersleri izleye bilirsiniz. Ancak İngilizce bilmeniz gerekiyor.

3 Şubat 2013 Pazar

Android Programlama

Önceki yazımda bahsettiğim server taraflı teknolojileri mobil platformda kullanmak istiyorum. Tabi ki client uygulama olarak yanlış anlaşılmasın . Android seçmemin nedeni basit, mobil platformda en fazla kullanılan işletim sistemi olması ve ios gibi maliyetli olmaması. IOS ile bir yazlım geliştirmek için Mac işletim sistemi gerekiyor ve bunun deneyebileceğini cihazlar şart. Bu da en az 3-4 bin liralık maliyet demek. Onun için ios tarafına şuan hiç bulaşmıyorum. Gerçi şirkette bulunan cihazlarda  Unity 3d için Foursquare plug in geliştirmek için baya uğraşmıştım. Onun için ios geliştirmesinde daha tecrübeliyim diyebilirim. Ancak objective-c diğer dillere oranla çok daha karışık diyebilirim.

Android için java kullanılıyor ve c sharp gibi aşina olduğum dillere çok daha yakın bir programlama dili diyebilirim. Android ile ilk başta yapmak istediğim web servis kullanımı ve grafik kütüphanelerinin kullanımı olacak. Biraz deneyim kazandıktan sonra küçük bir oyun projesi geliştirmek istiyorum. Bunun için ilk başta herhangi bir oyun veya grafik motoru kullanmayı düşünmüyorum. Çok gerekirse böyle bir yola baş vurabilirim.

Android için uygulama geliştirmek için bazı araçları ve kütüphaneleri kurmanız gerekiyor. En başta javanın kurulu olması gerekiyor. Android sitesindeki ADT Bundle size kurmanız gereken bu program ve kütüphaneleri toplu şekilde sağlıyor.
Bu bundle bu adresten indirebilirsiniz. Bununla birlikte gelenler :

  • Eclipse + ADT plugin
  • Android SDK Araçları
  • Android Platform-Araçları
  • Android simulatörler
Bu bundle içindeki programla gerekli Android sdkları indirebilirsiniz. Ancak bu baya uzun sürebilir. Ben bütün sdk versiyonları indirdim va yaklaşık 6gb kadar indirme yaptı. Baya uzun sürebilir yani.

2 Şubat 2013 Cumartesi

Server Taraflı Programlama

Bu aralar küçük multiplayer oyunlar üzerine denemeler yapmak istiyorum. Ama kullanacağım teknolojiler hakkında biraz kararsızım. Önümde iki seçenek var aslında biri servis bazlı ikincisi realtime socket kullanımı.
Önümdeki engeller ise servis bazlı bir oyunda performansta sıkıntı yaşayabilirim. Veritabanı üzerinden diğer kullanıcılar ile haberleşme yapmak gerçekten performans kaybı demek. Ama iyi tarafı kolay şekilde bir php veya asp.net ile yazılabilir ve herhangi bir share hostingte kullanılabilir. Realtime soket tarafında ise performans çok daha iyi ama kodlama için iyi bir tecrübe gerekebilir. Ayrıca bunu denemek için en azından bir vps sunucusuna ihtiyacım olacak. Onun için çokta riske girmek istemiyorum. Sadece deneme  yapmak için hem para hemde zaman kaybetmek istemiyorum. Onun için muhtemelen böyle bir şeye girişirsem servis tabanlı bir server teknolojisi kullanacağım galiba.

 Bu işi daha performanslı hale getirmek için NoSQL veritabanıda kullanabilirim aslında. MongoDB rami çok kullanan bir veritabanı. Öyleki bir veriyi insert edip eklediğinizde ve bu veriye tekrardan ulaştığınızda bu veri hala sadece ram üzerinde tutuluyor olabilir. Aslında bunun ayarlamasını biz yapabiliyormuyuz bilmiyorum. Ama hangi collection veya dokümanın ramde cachelenebileceğini ayarlayabiliyorsak bu performans için çok yaralı olabilir. Aslında bu şekilde çalışan Memcached gibi teknolojilerde mevcut. Ama yine kendinize ait bir sunucu ihtiyacı doğuyor bu şekilde.

Bir ara bu iş için web socket teknolojiside kullanmayı düşünsem de . Bunun için hosting firmasının bazı kütüphaneleri aktif etmesi ve socket açmanıza izin vermesi gerekiyor. Bunu sağlayan bir hosting bulmakta biraz zor gibi.

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.