26 Aralık 2010 Pazar

High Power Absolute Power 750W

Her koşulda yüzde 82’nin üzerinde verimlilik sağlıyor.
HIGH Power’ın Absolute Power serisinde yer alan 750W’lık model yüksek verimliliği nedeniyle 80 Plus Bronze sertifikasına sahip. Tüm yük koşullarında yüzde 82 seviyesinde verimlilik sağlayan ürün sistemin yüzde 50 yük durumunda yani 375W gibi bir güç tüketiminde ise söz konusu değeri yüzde 85 seviyesine ulaştırarak size harcadığınız elektriği ödemenin avantajını sunuyor. 135 mm’lik bir fan yardımıyla serinleyen üründe bir High Power klasiği olan Fan Delay özelliği de unutulmamış. Böylece bilgisayar kapandıktan sonra güç kaynağı kasa içerisinde atılmasına fırsat olmayan sıcak havayı tamamen sistem dışına gönderiyor ve donanımlarınızın ömrünü uzatıyor.

Firma: Akortek
Tel: (212) 210 97 99
Web: www.akortek.com
Toplam güç: 750 Watt
Fan: 135 mm
Modüler kablo: Var
Uzunluk: 16 cm
PFC: Aktif
+3.3V: 28A
+5V: 30A
+12V: 72A (toplam)
-12V: 0.8A
+5Vsb: 3A

Dark Mini Type-C


Daha işlevsel bir salon bilgisayarı için…

Yarış kırmızısı, fildişi beyazı, parlak siyah, mat siyah ve fırçalanmış koyu gri gibi renk seçeneklerine sahip olan Dark Mini Type-C kasa salonunuza küçük bir multimedya ya da oyun bilgisayarı kurabilmeniz için gerekli olan her şeyi sağlıyor. 5.25 inç optik sürücü ve 3.5 inç sabit disk desteği sayesinde diğer bileşenleri de uygun fiyatlara toplamanızı sağlayan Dark Mini Type-C kasa sahip olduğu PCI yuvasıyla fark yaratmayı başarıyor. İsteğe bağlı olarak 150W güç kaynağı çerçevesinde söz konusu alan tek yuvalı bir grafik kartı (Radeon HD4670 eşdeğeri) ya da bir TV kartıyla değerlendirilebiliyor. Kasada Mini ITX olmak kaydıyla AMD ve Intel anakartlar da kullanılabiliyor.

Firma: Akortek
Tel: (212) 210 97 99
Web: www.akortek.com
3.5 inç sürücü: 1 adet
5.25 inç sürücü: 1 adet (standart)
Soğutma: Arkada 1 x 80 mm
Güç kaynağı: Standart (150W)
Uyumluluk: Mini ATX
Montaj: Vidalı
Malzeme: Çelik
Ön panel: 2 x USB, kulaklık, mikrofon
Yan kapak: Penceresiz
Boyutlar: 200 x 165 x 300 mm
Ağırlık: 2.1 kg

Elpida 30nm DRAM yongalarını kullandığı 4G SO-DIMM bellek modülü duyurdu

Japon bellek üreticisi Elpida, 30nm üretim teknolojisiyle hazırladığı 2Gb DRAM yongalarını kullanan 4GB SO-DIMM bellek modülünü duyurdu. Dizüstü bilgisayarlar için hazırlanan bellek modülü, 40nm DRAM yongalarını kullanan mevcut Elpida çözümlerine göre, çalışma esnasında %20, bekleme durumunda ise %30 daha az güç tüketiyor.

Elpida, 30nm DRAM yongalarının can verdiği 1866MHz hızındaki 4G SO-DIMM bellek modünün hacimli üretimine ilk çeyrekte başlamayı planlıyor.

VTX3D özel tasarımlı Radeon HD 6870 modelini duyurdu

AMD tabanlı ekran kartları hazırlayan VTX3D, özel tasarımlı Radeon HD 6870 modelini duyurdu. 40nm üretim teknolojisiyle hazırlanan Barts XT GPU'sundan güç alan ekran kartı, sahip olduğu soğutucu ile daha serin ve sessiz çalışmayı vaad ederken aynı zamanda referans tasarımdan da ayrılıyor. 256-bit bellek veri yolu desteğine ve 1GB GDDR5 bellek kapasitesine sahip olan ekran kartına 1120x paralelişlem birimi eşlik ediyor. Grafik işlem birimi 900MHz, bellekleri ise 4200MHz'de çalışan DirectX 11destekli ikinci jenerasyon ekran kartı, çoklu GPU kurulumları için Crossfire X ve çoklu monitörkonfigürasyonları için Eyefinity teknolojilerine destek te sunuyor.
Görüntü aktarımı için çift DVI, çift DisplayPort 1.2 ve HDMI 1.4a konnektörlerine sahip olan ekran kartı, Universal Video Decoder 3.0, HD 3D ve Blu-ray 3D teknolojilerine de destek sunuyor. Yaygın satışına yakın zamanda başlanması beklenen yeni modelin fiyatı ise açıklanmadı.

17 Aralık 2010 Cuma

Apple'ın 2010 devrimleri!

Sevmeyebilirsiniz ama Apple'ın büyük devrimler yaptığını da inkar edemezsiniz. İşte o devrimler...

Appleın 2010 devrimleri!

2011 yılına girmeye artık günler kaldı. 2010 yılı Apple için oldukça hareketli geçti. Dünya çapında piyasa değeri 300 milyar doları bulan firma, bu yıl içerisinde kullanıcılara ve teknoloji severlere birçok sürpriz yaşattı.

iPad'in ilk dedikodularının dolaşmaya başladığı zamanlarda kimse böyle bir cihazın piyasada olabileceğine inanmıyordu. Ancak 2010 Nisan ayı iPad'in ve piyasada tabletin doğduğu gün oldu. iPad o kadar da sürpriz bir cihaz olmamasına rağmen, e asıl şaşırtıcı olan şey kapış kapış satılmasıydı. Hatta bu ilgiyi Apple'ın bile beklemediğini şu sözlerinden anlıyoruz; "iPad'i piyasa çok fazla tanıtmak için uğraşmadık ama yine de, insanlar neredeyse bize bile iPad bırakmadı." Sonuç olarak şu an tablet bilgisayarlar netbook ve dizüstü piyasasına bile beklenmedik bir alternatif olmuş durumda.

Android işletim sisteminin yükselişi şüphesiz Apple için bir sürpriz oldu. Daha önceleri RIM'le karşılaştırılan iPhone, RIM'in iPhone'daki gibi tüketicinin basit ihtiyaçlarını kolay bir şekilde karşılayamadığını düşündüler ve başka bir alternatif aramaya başladılar. Tam bu sırada birçok telefonla beraber piyasaya yağan Android yağmuru, Apple'a biraz soğuk duş etkisi yaptı. 2011 yılında Android ve iPhone arasında büyük bir rekabet, haber başlıklarını bolca süsleyecektir.


Apple'ın dünyası...

2010 yılı Apple'ın da hatalar yapabileceğinin bir göstergesi oldu. iPhone 4'teki anten sorunu, kayıp iPhone, iOS 4'te çıkan sorunlar tahmin ediyoruz ki Apple'ın aklının ucundan geçmemiştir. Apple'ın 2010 yılında yaşadığı kötü sürprizlerle ilgili daha detaylı bilgileri buradan alabilirsiniz.

2010 yılında kullanıcıların Apple'la ilgili fark ettikleri bir başka şey de, artık firmanın kendi içerisinde bir dünya oluşturduğu ve bu dünyanın sınırlarının sürekli genişlediğiydi. Öyle ki Apple kendi dünyasına almak istemediği yazılımlar, programlar ve içerikler için bolca eleştiri aldı. Adobe'la Apple'ın yaşadığı büyük Flash krizi haber başlıklarını bolca süsledi. Onun ötesinde Apple kendi uygulama dünyasında fazla açıklığa bazı bikinili uygulamaları yasaklayarak dur dedi. Bunları onaylayanlar ya da onaylamayan herkes aslında Apple'ın yavaş yavaş kendine ait bir dünya kurduğunu anlamaya başladı.

6 Aralık 2010 Pazartesi

Web önyüzü nasıl olmalı?


Web önyüzü(frontend) temel olarak üç öğeden oluşur.

İşaretleme dili 
HTML, XHTML, WML gibi işaretleme dilleri. Bunlar sayfanın ana iskeletini oluşturur

Stil dosyaları
CSS. Bunlar ise iskeletin üzerine giydirilen görsel öğeleri belirler.

Dinamik öğeler
JavaScript . JavaScript ise sayfalarda, istemci(client) tarafında dinamik istekler yapmamıza yardımcı olur.

Web önyüz kodlamada yapılan en büyük yanlışlardan birisi de bu üç öğenin birbiri içersinde gereğinden fazla yer almasıdır. Bu üç öğenin etkileşimi kaçınılmaz olsa da, bu etkileşimi en aza indirmek, hem daha güzel/anlaşılır kodlar üretmek, hem de daha hızlı ve kararlı web önyüzleri üretmemizde faydalı olur.
Bu yazıda, nasıl daha standart, anlaşılabilir, güzel, sade web önyüz kodları üretebileceğinizi anlatmaya çalışağım. Bir web önyüzü;


Standartlara uygun olmalı

Web sayfanızda muhakkak, hangi işaretleme dili kullandığınızı belirtin ve kodlarınızı belirtilen bu işaretleme dillerine uygun standartlarda yazmaya özen gösterin.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Bu örnekte, üretilen işaretleme dilinin, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd adresinde belirlenen DTD(Document Type Definition/Belge Tipi Tanımlaması)'ye uygun olarak XHTML 1.0 Strict olması beklenir. Tarayıcılar bu bu tanımlamaya uymayan hataların bir çoğunu tolere etse de, bu tolere etme işlemi tarayıcıların ekstra işlem yapmasına, pek hissedilmeyen küçük performans kayıplarına sebep verir.

Dinamik içerikli (verilerin kullanıcıdan alındığı) sayfalarda, bu standartları korumak zor gibi görünebilir. Bu tip sorunlar için, kullanıcıdan gelen verinin HTML Tidy gibi araçlar veya düzenli ifadeler yardımıyla filtrelenmesi, standartları korumanıza yardımcı olur.

Sayfanızın, belirtilen tanımlamaya uygun olup olmadığını http://validator.w3.org/ adresinden denetleyebilirsiniz.

Yine aynı şekilde CSS kodlarını yazarken de W3'ün belirlediği standartlara uygun kodlar yazmalıyız.

"Ama ya Internet Explorer?" dediğinizi duyar gibi oluyorum :). Internet Explorer'ın (özellikle IE6) pazarda bu kadar büyük payının olmasının en büyük ceremesini, web önyüz kodlayıcıları çekiyor. Internet Explorer'ın CSS yorumlama farkları çok canımızı yakar. Ancak ben hâla, Internet Explorer 6 için bile, standartların dışına çıkmadan (veya çok az çıkarak) kodlar geliştirilebileceğinden yanayım.

 Yine de explorer için özel bir CSS yazacaksanız, bunları diğer CSS'lerden ayırın.

<link href="site.css" rel="stylesheet" type="text/css" />

<!--[if lte IE 6]> 
    <link href="ie6.css" rel="stylesheet" type="text/css" />
<![endif]-->

CSS'lerimizin standartlara uygunluğunu da http://jigsaw.w3.org/css-validator/ adresinden yapabiliriz.
XHTML ve CSS konusunda detaylı bilgiye bir çok Türkçe kaynaktan erişebilirsiniz.
Ayrıca, standartlara uygun olarak üretilen kodlar, yazılımcıda garip bir tatmin duygusu yaratır :)

Güncel tarayıcıların tümünde sorunsuz çalışmalı

Evet, yazdığımız kod İnternet Explorer 6 için bile sorunsuz olmalı :) Tarayıcılar, çoğu DOM elementini farkli yorumlayabiliyor. Kimi tarayıcıda <body>'nin öntanımlı davranışı {margin:2px; padding:2px;} iken kimi tarayıcılarda {margin:0; padding:0} olabiliyor.

Bunun gibi farkları en aza indirmek için ise reset.css kullanmak. Hazırlanan bu CSS dosyası ile yukarıda belirttiğim sorunların büyük bir kısmı hâllolsa da, tarayıcıların yorumlama farkları, siz standartlara uysanız da hâla devam etmekte. Bunun için ise, yazdığınız kodu güncel tarayıcılarda, ve hatta pazar payı hala yüksek olan antika tarayıcılarda (ie6 :] ) test etmelisiniz.

Geliştirme aşamasında anlaşılabilir olmalı

Yukarıda bahsettiğim gibi, üç ana öğeyi olabildiğince birbirinden ayırmanız gerekir. Aşağıdaki XHTML tanımlamasını uygun olarak yazıldığını varsaydığımız kod kötü bir web önyüz koduna örnek olarak incelenebilir

<div style="display:block; font-size:17px; color:red; _height:100px;"> 
<input type="button" value="Gönder" onclick="if( formDenetimiBasarili()) { birkacIsYap(); formuGonder(); }" style="border:1px solid black">
<!-- bu satırlar arasında 100 tane satır olduğunu düşünün -->
</div>

İlk satırdaki div içinde, div'in görünümünü belirten, yani CSS içinde tanımlı olması gereken kodlar, sadece sayfanın istkeleti olması gereken işaret dilinin içersinde yer alıyor. Üstelik div'in display özelliği zaten block iken tekrar tanımlanmış, üstelik standart olmayan bir _height özelliği kullanılmış.

İkinci satırda ise sayfada dinamik birkaç kontrol yapacak JavaScript kodları, yine işaretleme dilinin içersine konulmuş. Ayrıca yine görünüm tanımlaması vereceğimiz CSS kodları, işaretleme dilinin içersinde yer alıyor. Üstelik XHTML tanımlamalarına göre <input> etiketini kapatmak zorunludur

Üçüncü satırda ise bu satırların arasında 100 satırlık başka bir kod olduğunu hayal edin. Dördüncü satırdaki </div>'in hangi div'e ait olduğunu bulmanız büyük zaman alacaktır.

Aşağıdaki kodu üç ana parçaya bölecek olursak.

Css dosyası

/* Iletisim formunu kaplayan div */
.contactDiv {
   font-size:17px;
   color:red;
   height:100px;
}

/* iletisim formun icindeki dugme */
.contactDiv input {
   border:1px solid #000000; /* renklerin RGB kodlarının yazılması tavsiye edilir */
}

XHTML dosyası

/* iletisim formundaki dugmeye basilma durumunu takip et*/
$(".contactDiv input").click( function() {
   if( formDenetimiBasarili()) { 
      birkacIsYap();
      formuGonder();
   }
});

Gördüğünüz gibi, işaretleme dilini, stil dosyalarını ve JavaScriptleri ayrı dosyalar haline getirdik.

Kodu daha anlaşılabilir yapan en büyük etkenlerden birisi de yazdığımız yorum satırları oldu. Hem CSS, hem JavaScript hem de XHTML dosyamıza ilgili yorumları yazarak kodu daha anlaşılabilir yapma yolunda büyük bir adım attık.

Örneğin, XHTML dosyasında son satırdaki <!-- .contactDiv --> ise o div'in contactDiv class'lı bir divin sonu oldugunu belirtiyor.

Aynı şekilde CSS ve JavaScript dosyalarınızı da olabildiğince anlaşılabilir tutmaya çalışın; genel ve özel olarak ikiye ayırın.

Genel dosyalar, sitenin neredeyse tümünde kullanılan sayfalar için yazılan kodları, özel kodlar ise belli sayfalara özel kodları barındırsın. Örneğin, tüm sayfada <a> elementinin rengini kırmızı yapmak istiyorsunanız bunu "genel" bir dosyaya koyun, yine aynı şekilde sadece iletişim sayfasında çalışmasını istediğiniz bir JavaScript'iniz varsa bunu da "iletisimSayfasi.js" gibi bir isimle kaydedin.

CSS ve JavaScript dosyalarınızın boyutunun büyümesinden endişe ediyorsanız, aşağıda anlatıldığı gibi bunları sıkıştırıp optimize edebilirsiniz.

"Peki bu bize ne kazandırdı?"

1) Kodumuz daha okunabilir hale geldi,yapılan işler ayrıldı. XHTML bilmeyen(veya uğraşmak istemeyen) bir JavaScript programcısı, sadece JavaScript dosyalarını düzenleyebilir hale geldi. Ayrıca yine tasarımcı arkadaşlarımız sadece CSS dosyasına müdahele ederek, sayfamıza istedikleri görünümü verebilmiş oldular.

2) Kod kısaldı. Dinamik bir sayfa oldugunu varsayarsak, XHTML kodu her seferinde değişebilir. Ancak CSS ve JavaScript kodları sabit kalabilir. CSS ve JavaScript kodları tarayıcı tarafında cache'lenebilirken XHTML için bu pek mümkün olmayabilir. XHTML'in kısalması ise bant genişliği masraflarını azaltmaya yardımcı olacaktır.

3) Gururumuz okşandı :)

Gerçek ortamda az trafik harcamalı, hızlı olmalı

Geliştirme ortamında her şey günlük güneşliktir. Hazırladığınız sayfa 100 tane css içeriyor olabilir. 100 kişilik geliştirme ekibiniz olsa bile bu pek sorun teşkil etmeyecektir. Ancak, kodunuz gerçek ortamda çok farklı isteklerle karşılaşacak, anlık gelen 2000 istek sonrasında sistem yöneticileriniz "SUNUCUYA SALDIRI VAAAR" diye haykırabilirler.

Hazıradığınız sayfadaki, harici öğelerin (CSS, JavaScript, resimler vs) her biri için bir HTTP isteği yapılır. HTTP istekleri, sunucu tarafında maliyetli isteklerdir. Yukarıdaki gibi bir örnekte, sayfada hazıraldaığınız 100 css dosyası, sayfanın her ziyaretinde sunucuya 100 istek yapacaktır (korkunç :] ) .Bu istekleri en aza düşürmek için ise uygulamanız gereken birkaç yöntem var.

1) JavaScript ve CSS dosyalarını birleştirin

Elinizdeki CSS ve JavaScript dosyalarını uygun sıra ile birleştirip tek dosya haline getirin. Bunu basit olarak aşağıdaki komut ile yapabilirsiniz.

cat reset.css genel.css anaSayfa.css iletisim.css > tumu.css
cat jquery.js genel.js sayfalar.js > tumu.js

2) Dosyaları sıkıştırın ve optimize edin

Sunucudaki istekleri tek dosyaya indirdik. Artık istek sayımız azaldı. Ama bu tek dosya toplamda 100 kilobyte tutuyor olabilir. Ve bu 100 kilobyte'ın 50 kilobyte'ı yorum satırları veya boş satırlar olabilir. Aşağıdaki iki JavaScript kodu aslında aynı işlemi yapmaktadır.

Geliştirme ortamı kodu: Aşağıdaki kodda kurulan hiyerarşi, yorumlar vesaire pek anlaşılır bir şekilde, olması gerektiği gibi yazılmış.

/**
 * Bu kod sunu sunu yapiyor
 * Su event'lari dinleyip, su class'lari cagiriyor
 * Ayrica bu kod su lisansa sahip
 * WEB_GELISTIRICI_LISANSI_1.0
 * Bu lisans sunları sunları gerektirir
 * 
 * params String metin : Ekrana basilacak metni bildirir
 */
sayfalar.iletisim.hata.ekranaBas = function(metin) {
    // gelen metni ekrana basar
    alert(metin);
}


/**
 * baglantinin tiklama isleminde bir hata olusura ekrana bas
 */
$("a").click ( function() {
  //herhangi bir hata olustuysa ekrana hata bas
   if( hataVarMi() ){ 
      sayfalar.iletisim.hata.ekranaBas("Bir hata olustu");
   }
});



Ancak, aslında yukarıdaki kodun yaptığı işi, şu kod aynen yapıyor.
 
1
x=function(a){alert(a)};$("a").click(function(){hataVarMi()&&x("Bir hata olustu")});

Yazdığımız CSS ve JavaScript kodları, yorumlardan, gereksiz satırlardan arındırmak ve hatta aynı işi yapan daha kısa kodlar üretmek için çeşitli araçlar mevcut.

Bunlardan birisi Yahoo'nun geliştirdiği YUI Compressor. YUI compressor ile JavaScript ve CSS dosyalarınızı sıkıştırabilirsiniz. Ayrıca Google'ın Google Closure Compiler uygulaması da JavaScript sıkıştırma işleminde gayet başarılı. Ayrıca web üzerinden de kullanılabiliyor

CSS dosyalarınızı optimize etmek için de CSS Optimizer kullanabilirsiniz.

Bu uygulamalar ile, birleştirerek HTTP isteklerinden tasarruf sağladığınız kodlarınızı küçültüp, bant genişliğinden de kazanç sağlayabilirsiniz.

 3 ) Mümkün olan resimleri birleştirin

Sayfada bulunan "harici" öğelerden birisi de resimlerdir. Sayfanızın tasarımı için kullandığınız her resim, sunucuya yine bir HTTP isteği yapacak, anlık 5000 ziyaret sonrası sistem yöneticileriniz yine çılgına dönecektir :)
Bu resimleri mümkün olduğunca birleştirerek istek saysını azaltabilirsiniz. Bunun için CSS Sprite tekniğini kullanabilirsiniz. Bu teknikle, örnek olarak sayfanızdaki resim olan menü öğelerini, tek bir resme koyup (istek sayısını bire indirip), CSS background-position özelliği ile resmin ilgili yerinin gösterilmesini sağlayabilirsiniz.


4 ) Resimleri optimize edin

Oluşturduğunuz resimleri optimize ederek daha düşük boyutda, neredeyse aynı kalitede resimler sunabilirsiniz.
Bunun için pngcrush veya jpegtan gibi uyuglamaları kullanabilirsiniz. Ayrıca Yahoo'nun SmushIt servisi ile, bu optimizasyonları Web üzerinden de yapabilirsiniz.


5) Mümkün olan her şeyi önbelleğe alın (cache)

   5.1 ) Expires, Cache-Control veya ETags  HTTP başlıkları kullanın

Sunucu tarafında, önbelleğe alınmasını istediğiniz dosyaları (.js, .css) Expires veya cache-control başlıkları ile gönderirseniz, tarayıcı bu dosyalara yapılan istekleri kendi önbelleğine alacak ve ikinci istekte sunucuya gitmeyecektir.
 

   5.2) Cevapları sıkıştırın

İsteklere gönderilen cevapları(response), sunucu tarafında gzip ile sıkıştırarak gönderererek bant genişliğinden tasarruf edebilirsiniz.


   5.3) AJAX isteklerini önbelleğe alın

Eğer sayfanızda, sıkça AJAX isteği yapıyorsanız, bunlar için bir "cache" mekanizması geliştirin. Aşağıdaki gibi bir kodunuz olduğunu düşün.

/** kullanici verilerini getir */
function kullaniciVerileriniGetir() {
   veri = Ajax.senkronIstekYap("http://sayfa.com/veriGetir.php");
   return veri;
}

/** kullanici resimlerini getir **/
function resimleriGetir() { 
   kullaniciVerileri = kullaniciVerileriniGetir(); // ajax requesti yapacak
   //ancak bu veriyi onbellege alsaydaik bu requeste gerek kalmayacakti


   kullaniciId = kullaniciVerileri['id'];
   resimler = Ajax.senkronIstekYap("http://sayfa.com/resimleriGetir?id="+kullaniciId"); //ajax requesti yapacak
   return resimler;
}

Ama kullaniciVerileriniGetir() fonksiyonu icin bir cache mekanizmasi olusturulsaydi, resimleriGetir() icinde cagirilan kullaniciVerileriniGetir() icin istek yapilmayacakti.

Ornek olarak basitce soyle bir mekanizma gelistirilebilir.

/** onbellek objesi **/
var cache={};

function kullaniciVerileriniGetir() {
   /** onbellekte varsa istek yapmadan cevabi don */
    if ( cache['kullaniciVerisi'] ) {

    }
    else {
        //onbellekte yoksa, istek yap, onbellege al
        cache['kullaniciVerisi'] = Ajax.senkronIstekYap("http://sayyfa.com/getir.php");
    }

    return cache['kullaniciVerisi'];
}



  5.4) DOM öğelerine yapılan istekleri önbelleğe alın

Sayfadaki DOM öğelerine yapılan istekler de istemci tarafını yorar.
Aşağıdaki gibi bir JavaScript kodunuz olduğunu düşünün.


1- $("div.hede span.hodo a[name='hebele']");


Bu jQuery kodu, DOM'daki tüm hede sınıflı div'leri, onun içindeki hodo sınıflı tüm span'ları onun içinde de name özniteliği hebele olan tüm a'ları alacak (Yazması bile ne kadar sürdü :]). Ve bunu sayfada birden fazla yerde kullandığınızı düşünürseniz DOM'da gereksiz yere birden çok kez gezineceksiniz.

Yukarıdaki sorgu sonunda bulunan öğeleri bir değişkene atayarak, işlemleri de bu değişken üzerinden yaparak, her seferinde DOM'da gezinmekten kurtulmuş olursunuz.

1- var hebeleA = $("div.hede span.hodo a[name='hebele']");


Kod "Anlamlı" olmalı

Üretilen kod "anlamlı" olmalı. Anlamlı olmalı ki arama motorları ne demek istediğimizi daha iyi anlasın. Örneğin, sayfadaki bir baglantıyı, <a> etiketi yerine istedigimiz herhangi bir elementin click event'ına bir kural belirleyerek de yapabiliriz. Ancak bir <div>'e tıklanınca başka bir sayfaya gitmesi pek anlamlı değildir. Aynı şekilde bir liste kullanacaksak bunları <ul>, <li> etiketleri içersine, bir veri listeleyeceksek de bunu <table> etiketi içersine koymalıyız. (table etiketini tasarım için kullanmaktan çoktan vazgeçtiğinizi varsayıyorum :] ).
Yine aynı şekilde bir haber başlığını <span> içinde vermektense <h1>  içinde vermek daha anlamlı olacaktır. Bu sayede arama motorları ile daha kolay "anlaşa"bileecğiz.
Mümkün olduğunca JavaScript bağımsız olmalı/olabilmeli

AJAX'ın giderek popülerleştiği günümüzde neredeyse her işimizi JavaScript ile yapar olduk. Ancak arama motorları JavaScript'i pek sevmiyor. Aşağıdaki gibi bir kodumuz oldugunu düşünün.

<a href="#" class="iletisimSayfasinaGit"> Iletisim </a>

------------------------------------

$("a.iletisimSayfasinaGit").click( function() {
    $("#icerikDivi").load("http://sayfa.com/getir.php?iletisim&sadeceIcerik=true") ;
}



Ama bu kod JavaScript desteklemeyen bir tarayıcı (tamam pek yok günümüzde ama) ve arama motorları için pek bir şey ifade etmiyor. Bu kod şu şekilde olsa daha bir anlamlı olur.

<a href="http://sayfa.com/getir.php?iletisim" class="iletisimSayfasinaGit">Iletisim</a>

-------------------------

$("a.iletisimSayfasinaGit").click( function(event) {
   event.preventDefault(); //burada normal sayfaya gitmesini engelledik
   $("#icerikDivi").load("http://sayfa.com/getir.php?iletisim&sadeceIcerik=true");
}


Bu şekilde, JavaScript destekli istemci kullanan kullanıcılar sayfayı AJAX ile çağırabilirken, JavaScript desteklemeyen bir istemciye sahip kullanıcılar ise http://sayfa.com/getir.php?iletisim adresini ziyaret etmiş olacaklar.


Sonuç olarak...

Bu tip birkaç kural ile daha "iyi" web önyüzleri hazırlaybilirsiniz. Yahoo'nun hazırladığı YSlow Firefox eklentisi ile hazırladığınız sayfaların yukarda anlattığım bazı kuralllara ne kadar uyduguğunu da kontrol edebilirsiniz.

Google, Chrome OS işletim sistemini 7 Aralık'ta lanse edebilir

Google teknoloji dünyasının uzun süredir merakla beklediği Linux tabanlı yeni işletim sistemi Chrome OS'u, 7 Aralık'ta lanse edebilir. Henüz firmadan konuyla ilgili resmi herhangi bir açıklama yapılmasa da, San Francisco'da düzenlenecek Chrome temalı özel etkinlikte, şu an beta aşamasında olan Chrome OS işletim sisteminin nihai sürümünün tanıtılması bekleniyor.

Android işletim sistemiyle akıllı telefon pazarında adeta fırtınalar estiren Google, bulut tabanlı Chrome OS işletim sistemiyle benzer bir sıçramayı netbook ve düşük maliyetli notebook'lar da da tekrarlamayı umuyor. Sadece flash tabanlı depolama sürücüleriyle çalışan yeni işletim sistemi ile Google, Microsoft'un en büyük rakibi olabilir.

Bu arada yakın segmentler için iki farklı işletim sistemine sahip olan Google'ın konuyla ilgili açıklamasını da hatırlatmakta fayda var. Google, Android işletim sisteminin akıllı telefonlar gibi küçük cihazlar ve tablet bilgisayarlarda, Chrome OS işletim sisteminin ise fiziksel klavyesi olan daha büyük (netbook gibi) cihazlar için geliştirdiğini belirtiyor.

Bu arada 7 Aralık tarihi, donanım dünyası için bir hayli yoğun geçecek gibi zira Chrome OS ile birlikte Nvidia GeForce GTX 570 ve 3DMark 11 lansmanları da olacak.

Google'ın Chrome etkinliği yerel saat ile 12:30'da www.youtube.com/googlechrome adresinden canlı yayınlanacak.


3DMark 11 için ilk test sonucu, ekran görünütüleri ve download linki

Futuremark'ın resmi tanıtımını yarın yapacağı 3DMark 11 için ilk sonuçlar gelmeye başladı. DirectX 11 üzerine inşa edilen ve sadece Windows Vista/Windows 7 platformlarında DirectX 11 destekli ekran kartlarıyla çalışabilen 3DMark 11 için test sonucu yayınlanan ilk ekran kartlarından birisi, Nvidia'nın yeni amiral gemisi GeForce GTX 580 oldu.

Standart hızlarında çalışan Core i7 920 işlemcisinin güç verdiği sistemde alınan sonuçlara göre GeForce GTX 580, 3DMark 11'in performance ayarlarında 5746, Extreme ayarlarında ise 1854 puanlık skora imza attı. İlk test sonuçlarına ek olarak 3DMark 11 için çeşitli "download" linkleri de ortaya çıkmaya başladı. Futuremark'ın yeni test uygulamasını indirmek isteyenler için adres;




Kaynak: DH

EVGA'nın GeForce GTX 570 modeli gün ışığına çıktı

Çıkışına sayılı saatler kalan GeForce GTX 570 için üreticilerin hazırladığı yeni modeller görünmeye başladı. Kuzey Amerika pazarında Nvidia'nın en büyük iş ortaklarından birisi olan EVGA'in GeForce GTX 570 modeli ortaya çıktı. 40nm üretim teknolojisiyle hazırlanan GF110 GPU'sunun güç verdiği ekran kartı, referans tasarımı baz alıyor.

Grafik işlem birimi 732MHz'de, paralel işlem birimleri 1464MHz'de ve bellekleri de 3800MHz'de görev yapan ekran kartı 320-bit bellek veri yolu desteğine ve 1280MB GDDR5 bellek kapasitesine sahip.
SLI, CUDA, PhysX ve 3DVision Surround teknolojisine destek sunan yeni model, çift DVI ve Mini HDMI konnektörleriyle geliyor.

Güç tüketiminin 225 Watt seviyesinde olduğu belirtilen GeForce GTX 570'in, ülkemizde marka ve modeline göre 399$+KDV seviyesinden sunulması bekleniyor.


Kaynak: DH