yazılım

Kodcu.com Node.js Sunum Videosu

Madvens uyardı;


Kodcu.com'da Arda Başoğlu tarafından Node.js ile ilgili yapılmış Node Nedir Ve Artan Popülaritesini Neye Borçlu adlı sunum videosu, Node.js'i merak edenlere duyurulur;

http://www.kodcu.com/2012/07/video-node-nedir-ve-artan-popularitesini-ne...

Ayrıca sunumun kendisini (slayt olarak) görmek isteyenler buraya bakablir: http://www.ardabasoglu.com/1/post/2012/06/node.html

Github'da "Fork" Projeyi Orjinalinin Son Haline Getirmek

Kısaca özetlemek gerekirse;

git remote add uzak_ad proje_adresi/proje.git
git fetch uzak_ad
git merge uzak_ad/master
git push origin master

Uzun uzun anlatmak gerekirse;
Github güzel bir açık kaynak kod deposu. Git bilmeyince tabii ki kod kontrolü zor oluyor. Diyelim ki bir projeyi beğendik, talip olup kendimize aldık yani "fork" ettik. Sonra biz henüz üzerinde fazla çalışamadan orjinal kodda değişiklik yaptılar. Bu halini almak istiyoruz, o halde yapacağımız şeyler adım adım şöyle;

  • Orjinal depoyu remote olarak kaydetmediysek kaydedelim;
  • git remote add uzak_ad proje_adresi/proje.git

  • Ardından kodları çekelim (fetch)
  • git fetch uzak_ad

  • Yerel kod ile orjinal kodu birleştirelim (merge)
  • git merge uzak_ad/master

  • Son olarak da birleştirilmiş son halini github'daki yerimize gönderelim (push)
  • git push origin master

Eclipse'de JavaScript Doğrulamasını Kaldırarak Hızlanmak

Eclipse çok yönlü bir IDE olduğundan, her şeyi kontrol altına alma çabası en üst seviyede. Bunun sonucunda da bazı hız sorunları ortaya çıkıyor. Bunlardan en önemlileri "validation" yani doğrulama ya da onaylama özelliği ve "code compilation" yani kod tamamlama. Java tarafında çok iyi ve yerinde çalışan bu özellikler JavaScript tarafında büyük problem oluyor. Bazen bir js dosyasını düzenlerken kilitleniyor ve dakikalarca beklemek zorunda kalabiliyorum. İşin ilginç yanı Eclipse'e ayırdığımız Heap gibi değerleri arttırdığımızda daha çok beklemesi. Bunun nedeni de ilgili Javascript'in tüm importlarını tarıyor ve büyün fonksiyonları doğrulamaya yani "valide" etmeye çalışıyor, ya da kodu tamamlamak için tüm dosyaları algılamaya çalışıyor.

Bunu engellemek için Eclipse'e validation ve JavaScript ile alakalı tüm işlemlerde "işime karışma" demek gerekiyor. Bunun yolu şöyle;

  1. Projeye sağ tıkla
  2. Properties'den JavaScript > Include Path'i seç
  3. Source sekmesine geç
  4. Altta görülen JavaScript dizinini aç
  5. Excluded yazsınına bir kere tıkla
  6. Sağdaki Edit butonuna tıkla
  7. Açılan pencerede alt bölümdeki "Excluded Pattern"in sağındaki Add butonuna tıkla.
  8. Baş ağrıtan tüm JavaScript dizinlerini seç (* gibi wildcard desenleri de kullanılabilir)

Kaynak: stackoverflow.com

Spring'in Babası Rod Johnson VMWare'den Ayrıldı

Konu:

Java platformunda meşhur ve önemli bir yere sahip olan Spring Framework'ün babası Rod Johnson, Spring Source'un sahibi olan VMware firmasından ayrıldığını açıkladı. Veda yazısı da Spring Source'da: http://blog.springsource.org/2012/07/03/oh-the-places-youll-go/

ExtJS Paging (Sayfalama)

Paging (Sayfalama) Nedir?

Bir grid'e çok fazla kayıt geldiğinde hem bağlantı hem browser açısından performans düşüklüğü oluşabilir. Sunucu tarafında da performansı arttırmak gereksinimi ortaya çıkabilir. Bu yüzden browser üzerinde sayfalama yaparak alınan veri sayısı kısıtlanır. Örneğin 1000 kayıt gelmesi yerine her sayfada 100 kayıt gelecek şekilde bir yapı oluşturulur ve bu şekilde 10 sayfa gerektikçe ajax istekleriyle doldurulur. Buna ExtJS'de paging yani sayfalama denir.

Yapılacaklar

Bunun için ihtiyacımız olan şeyler;

  1. Grid'e ait store'un autoloadfalse olmalı, daha sonra biz load fonksiyonuyla dolduracağız.
  2. Ext.PagingToolbar nesnesi oluşturulur.
  3. Oluşturulan paging nesnesi Grid'in bbar özelliğine eklenir.
  4. load fonksiyonlarımıza start ve limit değerleri verilir.
  5. store'a totalProperty vermemiz gerekiyor
  6. baseParams özelliğini vermemiz gerekiyor ki her ajax sorgusunda bu bilgiler ayrıca verilmeye gerek kalmadan gitsin
  7. Sunucudan gelecek cevabı ayarlayalım.

Parmaklar Çalışsın

  1. Store'umuzu oluşturalım. Örnek olarak bir JsonStore kullandım. Değerlerin geleceği adres de myAjaxUrl.ajax olsun. JSON biçiminde gelecek sunucu cevabı (response) içinde bir kayıtları barındıran bir liste (json array) olacak. Bu listenin adı 'list' olsun. myRecord adında da bir fieldlerimizi saklayan bir Record olsun. Store otomatik ajax isteği yapıp dolmasın diye autoload: false değerini verelim.
  2. var myRecord = new Ext.data.Record.create([
    	{name:'tip',type:'int'},
    	{name:'sehir',type:'string'},
    	{name:'adres',type:'string'}
    ]);
    
    var myStore = new Ext.data.JsonStore({ 
    	url: 				"myAjaxUrl.ajax",
    	root: 				'list',
    	fields: 			myRecord,
    	autoload: 			false
    });
  3. PagingToolbar nesnesini oluşturalım.
  4. var myPaging = new Ext.PagingToolbar({
    	pageSize:	100,
    	width:		600,
    	store:		myStore,
    	displayInfo: 	true,        
    	displayMsg: 	'Toplam Kayıt: {2}, (Gösterilen:{0}-{1})',
    	emptyMsg: 	"Görüntülenecek kayıt yok."
    });
  5. PagingToolbar'ı grid'e eklemek için grid'in bbar özelliğine atıyoruz.
  6. bbar:	myPaging
  7. start değeri başlangıç kayıt numarası, limit değeri ise her sayfada gelecek kayıt sayısıdır
  8. myStore.load({params:{start:0, limit:100}});

  9. Store'a totalProperty değerini verelim. totalCount yerine farklı bir değer de verilebilir, önemli olan sunucudan gönderdiğimiz anahtar kelime
  10. totalProperty: 'totalCount'

  11. Store'a baseParams değerini atayalım.
  12. myStore.baseParams = {
    	sehir: 'Ankara',
    	tip: 1
    };
  13. Bundan sonra sunucudan gelecek değer yazdıklarımızla uyumlu olmalı. Sunucuda kullandığınız teknolojiye göre bunu kendimiz programlayacağız. Ext tarafında önemli olan gelecek cevabın uygun olması. Öncelikle json formatlı bir dizi (array) bekliyoruz. myStore'da root olarak verdiğimiz değer bu dizinin 'key'i olacak. Yani bir obje olacak, içinde de bir dizi olacak, örneğimizde bu key 'list'. Buna göre beklediğimiz değer şunun gibi:
  14. {list:[obje1,obje2,obje3,...]}

    Bunun yanında totalProperty değeri de root değerinin yanında bir obje olarak gelmeli. Örneğimizde 'totalCount' olarak verdiğimize göre şöyle olmalı;

    {list:[obje1,obje2,obje3,...],totalCount:500}

    Yani 'list' adlı dizideki objeler sayfada görünecek, diğerleri Ext tarafına aktarılmayacak. Toplamda da (örneğimize göre) 500 adet listelenecek obje var, buna göre sadece params olarak gönderdiğimiz parametrelerden 'limit' değeri kadar (örneğimize göre 100 adet) sayfada görünecek. hangi sayfada olduğumuz bilgisini ise Ext, sunucu tarafından aldığı bilgiye göre gösterecek.

Demo şu an mevcut değil. İş yoğunluğundan vakit bulabilirsem demoyu da hazırlamayı düşünüyorum.

Sayfalar

Subscribe to RSS - yazılım