nedir

İşte kadınları kıskacı altına alan, azı çoğu zarar 7 günah !
1- Tembellik

Gün içinde hiç bitmeyen stres yaşadığımız gerginlik bir zaman sonra bizim sürekli her şeyden şikayet etmemize oluyor. Gün içinde sürekli oradan oraya koşturan bedenimiz, akşam olduğunda da aynı tempoda devam edemiyor, bir yerden sonra iflas ediyor. Hangimiz çok yoğun tempolu bir iş gününden sonra akşam 1 saat yapıyoruz mesela? Akşamımızı faydalı uğraşlarla geçirmek yerine kumandasını elimize alıp saatlerce o dizi senin, bu benim tembel tembel oturup akşamımızı öldürüyoruz. Read the rest of this entry »

aşağıdaki adresteki ı indirin kurun.

için

İNDİRMEK İÇİN TIKLAYIN!!

Windows performansı optimize etmek için lar sunar, fakat disklerin fiziksel potansiyelinin bir sınırı vardır. Bunun için gerekli RAID (Redundant Array of Independent Disk Drives - " Birbirini destekleyen bağımsız diskler") olarak bilinir. Basitçe açıklamak gerekirse, veri transfer hızlarının artması güvenliğin yükseltilmesi amacıyla birkaç bir arada kullanılır. Performans; ımızdaki en yavaş olan ' yi performansını artırmak; Diğer birçok sistem bileşeninin aksine, sabit diskin performansı ayarlar veya "overclock" ile arttırılamaz. Erişim süresini küçük yazılımlarla değiştirebilirsiniz, fakat bu yöntem aslen çalışma sesini azaltmak ya da disk üzerine dağılmış veriyi birleştirerek verimliliği artırmak için kullanılır. Bir işlemci her saniyede milyonlarca, hatta milyarlarca komutu işleyebilir. , işlemcinin komut işleme hızına ulaşamaz. Bu sorunu ortadan kaldırmak için programlar sabit diskten alınarak RAM'e yüklenir. RAM'dan de işlemciye aktarılır.

Sistem belleğinden gelen veriler, çoğunlukla CPU'nun hızına yetişemezler. Bu problemi çözmek için CPU içinde yüksek hızlı hafızalar bulunur. Günümüzde artık işlemciler bile iki dört çekirdekli üretilmeye başlandılar gerçekten de son derece performanslıdırlar. Ancak ımızdan aldığımız performans sadece işlemcilerin ne kadar hızlı olduğuna değil, sabit diskimizin okuma/yazma hızına da bağlı. İşlemciniz ne kadar hızlı olursa olsun, günümüz sabit disklerin okuma/yazma hızlarının işlemci hızlarına göre düşük olması, önemli boyutta performans kaybını da beraberinde getiriyor. Eğer günlük kullanımda internet'e bağlanmak, makale yazmak, izlemek, dinlemek gibi performans arıyorsanız, hiçbir işlemci ya da dev kapasiteli RAM, derdinize çare olamaz. Çünkü , zincirin en halkası olan sabit diski beklemek zorunda! Disklerdeki erişim süresindeki iyileştirmeler, NCQ teknolojisi, SATA2 tampon bellek miktarının arttırılması performansın belli bir miktar arttırılmasını sağladı ama bu gelişme ne yazık ki CPU Ram'daki hıza paralel olarak gelişmedi. Diskin okuma yazma hızı bir darboğazdan çıkınca, işlemci daha fazla daha hızlı gelen veriyi daha çabuk işlemek zorunda kalıyor. Tabii, doğal olarak işlemci kullanımı artıyor idi. Aslında, çoğu kullanıcı için pahalı bir işlemci yerine, fazladan bir disk alıp RAID'e geçmek, inanılmayacak kadar doyurucu sonuçlar ortaya çıkarabilir. Sabit disklerin ortaya çıkardığı performans dar boğazını aşmanın en iyi yolu olarak görülen RAID dizileri, uzun zamandır anakartlarda donanımsal olarak destekleniyor.
Yüksek kapasiteli disklerde düşük Maliyet ile hem daha fazla alan hem de yüksek performans elde edilebilir; Yüksek kapasiteli olan 500GB'lık disk satın almaya kalkışırsak; 1 500GB kapasiteye sahip bir alabiliriz veya 2 250GB kapasiteli disk alabiliriz. 2 250GB disk alıp RAID yaparsanız hem disklerinizin performansı birinci seçeneğe göre artar, hem de düşük bir maliyet ile 500GB bir depolama alanına sahip olursunuz. Düşük maliyet, küçük kapasiteli diskler için geçerli değildir. Güvenlik; Raid dizeleri, kronik performans sorunlarının yanında da güvenlik problemlerini çözmek için mükemmel bir yaklaşımdır. Daha fazla alan; Çoğu durumda sadece performans veri güvenliği değil, çok yüksek miktarlarda verinin işlenmesinin depolanmasının gerekebileceği de değerlendirilmelidir. Bu tip problemleri çözebilmek için doğru yaklaşım yüksek kapasiteli disklerle kurulacak bir RAID dizesi olabilir. Bu nedenlerden dolayı RAID teknolojisi gelişti. İşte bu "RAID" teriminin son zamanlarda ünlü olmasının sebebi bu. Böylelikle RAID teknolojisi hem verilerimizin güvenliğini sağlarken hem de bir nebze de olsa işlemcimizin performansından sonuna kadar faydalanmış oluyoruz.

Hardware Raid ile Software Raid

Software RAID, işlemciye ekstra bir yüklenmeye sebep olduğundan dâhili kartlarla yapılan RAID'e göre oldukça yavaş kalıyor. Masaüstü sistemlerde güdülen asıl amaç performans olduğu için Software RAID pek tercih edilmeyen bir yöntem. Hardware RAID'in performansı software RAID'e göre çok çok üstün durumda. Diğer bir farkta Hardware RAID software RAID'e göre pahalıdır. Bu yüzden anakart üreticileri bazı modellerinde bu teknolojiyi de entegre ediyorlar. Bu büyük bir avantaj, çünkü bu yüzden hem hardware RAID'in nimetlerinden faydalanabilir, hem de ekstra bir ücret ödemeden neredeyse bedavaya sahip olabiliyoruz. Tek ihtiyacınız olan bağlamak istediğiniz sabit sürücü kadar anakartınız üzerinde bağlantı noktası olması. Pahalı RAID denetleyicilerine ihtiyacınız yok. Hardware RAID kullanmak için iki diskin de baştan formatlanması gerekir donanımın RAID BIOS'undan gerekli ayarlar yapıldıktan sonra ancak kurulup gerekli driverlar yüklendikten sonra çalışır. Software Raid yapılırken bilgiler kaybolmuyor ama Hardware raid için 'leri formatlamak gerekeceğinden tüm bilgiler kayboluyor. Burada dikkat etmeniz gereken nokta, bir kere RAID dizisini oluşturduğunuzda donanımsal bir çözüme dönemiyorsunuz. Eğer fikir değiştirip donanımsal bir çözüme geçerseniz tüm diziyi baştan yaratmalısınız. Basic diskler dynamic disk haline çevrilebilir, ancak dynamic diskler Basic haline çevrilemez. Bu ancak dynamic disklerin silinmesiyle oluşur. Software Raid Hardware Raid'e göre işlemciye biraz daha yük bindiriyor. Donanım raid kadar performanslı değil çok fazla sistem kaynağı harcıyor. Üçüncü parti partition yazılımlarla Basic diskler üzerinde işlem yapabilirken dynamic diskler üzerinde işlem yapamamaktadırlar. Dynamic disklerde artik partition kavramı yoktur, volume kavramı vardır. Dynamic disklerin diğer bir avantajı, volume'leri istediğimiz gibi extend (genişletme) edebiliriz. Bu ne demektir: istediğimiz bir volume'un boyutunu daha sonra istediğimiz şekilde arttırabiliriz bunu volume'u /veya diski formatlamadan yapabiliriz, yeter ki diskimizde yeteri kadar boş alan olsun.

BenQ'dan Dünyanın En İnce LCD Monitörü

Sadece birkaç sene öncesine kadar 17" monitöre sahip olan kullanıcıları kendilerini şanslı hissederken üretim teknolojilerinde yaşanan gelişmeler düşen maliyetler sonucu günümüzde 19" boyutundaki monitörler standart olma yolunda emin adımlar ilerliyor. Fiyatların düşmesi pazarın genişlemesi üretim safhasında yeni oyuncuları da sektöre dahil ederken artan alternatif sayısına paralel olarak kullanıcıların talep beklentileri de değişmeye başladı. Kullanıcıların bir kısmı boyuta dikkat ederken diğer bir kısmı da tasarım özelliklerini öncelikli tercih sebebi olarak değerlendirebiliyor. Tabi teknik özellikler fiyat anlamında alınabilirlik satın almayı etkileyen diğer önemli parametreler arasında yer alıyor. kullanımına ek olarak son dönemde yeni nesil konsolların devreye girmesi ek olarak oturma odalarımızı hedef alan çoklu ortam bilgisayarlarının yaygınlaşmaya başlaması tasarım anlamında iddialı olan monitörlerin ön plana çıkmasına oldu. Sektörün lider isimlerinden biri olan BenQ da segmentinde dünyanın en çözümü olduğunu iddia ettiği 24" boyutundaki yeni LCD monitörü V2400W'yi duyurdu.

BenQ'nun yeni monitörü V2400W tasarım anlamındaki detayları, teknik özellikleri boyutu ile dikkat çekmeyi yor. 24" boyutunda olan monitör Acer'ın V serisi dahilinde kullandığı yeni tasarım anlayışının en yeni iddialı temsilcisi durumunda. Firmanın Lifestyle Dizayn Merkezinde çalışan tasarımcılarının oluşturduğu Kinergy (Kinetic Energy / Kinetik Enerji) adı verilen modern tasarım anlayışından esinlenilerek hazırlanan yeni monitör farklı beklenti içerisinde olan kullanıcıların güç zerafet gibi beklentilerini bir arada sunmayı hedefliyor.
Tasarım üzerine genellikle ön plana alınan simetrik yaklaşım yerine V2400W asimetrik stand tasarımını baz alıyor. Yeni monitörün iddialı bir inceliğe sahip olmasında üretim aşamasında kullanılan RHCM (Rapid Heat cycle Molding) adı verilen yeni bir plastik enjeksiyon sisteminin ciddi katkı sağladığı ifade ediliyor. Ayrıca yeni enjeksiyon teknolojisi sayesinde birleştirme yeri veya kaynak nokta bağımsız bir yüzey elde edilmesi bu sayede monitörün çok daha çekici görünmesi hedeflenmiş. V2400W'nin sahip olduğu Mavi LED'li dokunmatik tuş takımının monitöre tasarım anlamında farklı bir hava kattığı ayrıca monitör ayarlarının kolayca gerçekleştirilmesine olanak dığını da belirtiliyor.

24" segmentinde yer alan V2400W'yi BenQ benzer ürünler şısında dünyanın en incesi sloganı ile lanse ediyor. 24mm'lik kalınlığa sahip olan ultra- monitörün en yakın rakibinden %21 daha olduğu ifade ediliyor. 24" monitör hazırlama konusunda tecrübeli olan firmanın son güzeli tasarım özelliklerinin yanı sıra teknik alt yapısı ile de son derece iddialı. AMA adı verilen gelişmiş hareket hızlandırma teknolojisi sayesinde çok daha net keskin görüntü vermeyi amaçlayan BenQ bir diğer önemli görüntüleme teknolojisi olan Senseye+Photo ile daha keskin görüntü sunmayı ayrıca tırtık bulanıklık gibi kaliteyi olumsuz etkileyen detayları bertaraf etmeyi amaçlıyor. Ek olarak NTSL sertifikalı sRGB modu görüntü kaynağına göre daha gerçekçi lı sonuçlar elde edilmesi için kullanılıyor. BenQ V2400W'nin genel özelliklerine baktığımızda 1920×1200 (WUXGA) çözünürlük desteği ile Full HD logosu taşıyan monitör 250 cd/m2 parlaklık, 4000:1 gibi dinamik şıtlık oranı, 160/160 dikey yatay görüş açısı, 5ms / 2ms (Gri'den Gri'ye) tepki süresi gibi detaylara sahip olduğunu görüyoruz. Yüksek mlı içerik için HDMI arayüzünü destekleyen monitör bu sayede yeni jenerasyon görüntü kaynakları ile rahatça kullanılabilirken en azından şu an için HDMI'a göre daha yaygın olarak kullanılmakta olan DVI D-Sub girişlerine de destek veriyor. Ek olarak kulaklık girişine de sahip olan BenQ V2400W, 563.8×369.4×191.7mm boyutlarında 6.7Kg ağırlığında. Standı ayarlanabilir olan V2400W, Premium sertifikasını da üzerinde taşıyor. Tasarım detayları teknik özellikleri ile ön plana dünyanın en 24" monitörü V2400W'nin Nisan ayında kullanıma sunulması beklenirken fiyatı hakkında şimdilik net bir bilgi bulunmuyor.

Yeni Tasarım Acer Gemstone Blue

Hızla gelişen pazar pazar payını arttıran dizüstü dünyası yaşanan donanım gelişmelerine de kayıtsız kalmıyor. Bilindiği gibi bir süredir devam etmekte olan "format meydan savaşları" geçtiğimiz günlerde son bulmuştu. Sony'nin destekçisi olduğu Blu Ray Toshiba'nın arkasında durduğu HD DVD arasında yaşanan sıkı mücadele özellikle sinema endüstrisinin kalbi olarak görülen Hollywood merkezli dev stüdyolarının arka arkaya Blu Ray'e geçiş yapmaya başlaması ile son noktaya gelmiş akabinde Toshiba, HD DVD defterini kapadığını açıklayarak 1 milyar dolarlık kayba uğramıştı. Daha güçlü işlemciler, fiyatları düşen bellekler görselliğe yeni bir boyut kazandıran grafik işlemciler ile donanımsal alt yapıları gelişen dizüstü bilgisayarlarda artan eğilimlerden biri de çoklu ortam yetenekleri geliştirilmiş özel modeller. PC üretiminde liderliğe oynayan global oyunculardan Acer, Aspire serisine dahil etmekte olduğu iki yeni modeli ile birlikte Sony'nin Blu Ray'ine göz kırparken firmanın yeni modelleri dikkat çeken detayları ile getirecek gibi görünüyorlar.

Henüz toplam satış adedi açısından olması bile satış hızı açısından masaüstü bilgisayarları geride bırakmayı başaran dizüstü bilgisayarlar için bu yıl çok daha hızlı geçecek. Asus'un Eee PC modeliyle elde ettiği yüksek satış rakamları, paralelinde aynı pazara girmek isteyen Gigabyte MSI gibi Tayvanlı güçlü firmaların gayreti pek tabi ki işlemci üreticilerinin düşük güç tüketimine sahip yeni çözümleri dizüstü arenasında model çeşitliliğin artmasını sağlarken kullanıcıların bir kısmı uygun fiyatlı kompak çözümleri, diğer bir kısmı ise masaüstü bilgisayarlardan geri kalmayan hemen her ihtiyaca cevap verebilecek daha komplike çözümleri tercih ediyorlar. Acer'ın Gemstone serisi dahilinde hazırladığı yeni modelleri Aspire 6920 8920 "Blue" özellikle çoklu ortam yetenekleriyle ön plana çıkan pek çok ihtiyaca cevap verecek nitelikte hazırlanan iki özel model olarak değerlendirilmekte. Tasarım özellikleri, Nvidia'nın DirectX 10 destekli en yeni mobil grafik çözümlerinden GeForce 9500 serisini kullanmaları, Blu Ray sürücüsü, modeline göre Full HD destek verebilen , Penryn işlemci alternatifi fonksiyonelleğin yanı sıra tasarıma da ciddi katkı sağlayan dokunmatik özellikli CineDash konsolu yeni modellerin ön plana çıkan detayları.
Acer'ın Aspire Gemstone Blues serisi firmanın yeni tasarım anlayışını yansıtan özel bir seri. Yeni seri dahilinde daha keskin hatları olan agresif bir dizayn anlayış ön plana alınırken özel ışık efektleri, tercihleri kaliteli komponent kullanımı da tasarım tamamlayan önemli detaylar olarak düşünülebilir. Yeni seri dahilinde yer alan modeller ile Acer bazı " world's firsts" ibareli özellikleri de kullanıma sunuyor. Dokunmatik olarak kullanılabilen süper hassas CineDash kontrol paneli segmentinin en kolay hızlı çoklu ortam kontrolcülerinden biri olarak iddia ediliyor. Yeni panel ile medya içeriğinin hızlı bir şekilde kontrol edilebildiği belirtiliyor. Çoklu ortam özellikleri açısından bir diğer önemli detay ise kullanılan 2. jenerasyon Dolby Home Theater teknolojisi. Bu ile yüksek deneyiminin kullanıcılara yansıtılması amaçlanırken CineSurround, Tuba CineBass booster, True5.1 gibi detayların dizüstü bilgisayarlardaki standardını farklı bir boyuta taşıyacağının altı çiziliyor. True 5.1 adı verilen çevresel sistemi dahili 6 hoparlöre ek olarak 10 watt'lık Tuba CineBass subwoofer dizüstü bilgisayarların sahip olduğu potansiyelinin önemli işaretçileri.
Acer'ın Gemstone serisi dahilinde hazırladığı iki yeni modeli Acer Aspire 6920 8920 arasında özellikle 8920 modeli ön plana çıkıyor. Zira Aspire 8920'nin 18.4" boyutunda ekrana sahip olan ilk model olduğu iddia ediliyor. Boyutu ile dikkat çeken CineCrystal LCD 1920×1280 çözünürlük dolayısı ile Full HD desteği ile dikkat çekerken 8ms'lik tepki süresine 300 kandelalık parlaklık değerine sahip olduğu bildiriliyor. Farklı saat hızlarına sahip olan Penryn işlemci alternafi, 4GB sistem belleği, 640GB'lık depolama kapasitesi, 512MB GDDR3 belleği olan ayrıca Turbocache özelliği ile bellek kapasitesi 1280MB'a kadar arttırılabilir olan GeForce 9650M GS grafik çözümü, dahili tv alıcısı, Blu Ray sürücü, çoklu kart okuyucusu VoIP Bluetooth gibi detayları ile dizüstü bilgisayarlar özellikle çoklu ortam yetenekleri açısından gerekli gücü kullanıcılarına sunabiliyor. Tabi bu noktada spesifikasyonun iki model arasında değişiklik gösterebileceğinin de ı çizmek gerek. Zira Aspire 8920 modeli ile 2x hızında Blu Ray sürücüsü kullanıma sunulurken, 6920 modelinde ise 1x hızında Blu Ray sürücüsü tercih edilebiliyor. Ayrıca 18.4" boyutunda Full HD özellikle ekrana sahip olan 8920 modelinin aksine 6920 modeli ile birlikte 16" boyutunda biri HD diğeriyse Full HD özellikli iki farklı monitör opsiyonu sunulmakta. Acer'ın yeni dizayn anlayışını yansıtan Aspire Gemstone Blue serisi tasarımları çoklu ortam yetenekleri ile ön plana çıkan iddialı bir seri.
Tek Çekirdek Devri Sona Eriyor…girmedi
AMD yılın ikinci yarısı itibariyle 45nm üretim teknolojisine geçiş yapmayı planladığı Shangai Deneb kod adlı yeni işlemcilerini, aynı zaman dilimi içerisinde Intel de Nehalem kod adını verdiği yeni mikroişlemci mimarisinin sağladığı esnek tasarım anlayışı doğrultusunda hazırladığı yeni nesil işlemcilerini endüstrinin beğenisine sunacak. Üretim teknolojilerinde kullanılmaya başlanan yeni metodlar sayesinde saat hızı, çekirdek sayısı bellek kapasitesinde yaşanan hızlı gelişme kullanıcılara aynı fiyat seviyesinde çok daha performanslı çözümlere ulaşabilme şansı yor. Peki kullanıcılar için gerçekten de çok çekirdekli, yüksek frekansta çalışan, performans odaklı işlemciler bir zorunluluk mu yoksa ihtiyaca göre tercih yapmak daha mı önemli? Bu noktada devreye giren AMD Intel kullanıcılara giriş seviyesinde sundukları iki yeni çift çekirdekli işlemci ile hem tek çekirdekli işlemci dönemini yavaş yavaş sonlandırmayı hemde uygun fiyat seviyesinde tatminkar sonuçlar sağlayabilecek yeni çözümleri kullanıcılar ile buluşturmayı hedefliyorlar.
Intel'in geçtiğimiz aylarda kullanıma sunduğu Celeron işlemci ailesinin çift çekirdekli ilk modeli E1200'e şı AMD çift çekirdekli yeni işlemcisi Sempron 2100+ pazara sunarak hem rakibine model bazında yanıt vermiş oldu hemde rekabete yeni bir boyut kazandırdı. Bilindiği üzere Intel'in Celeron AMD'nin Sempron işlemci aileleri özellikle giriş seviyesinde yer alan maliyet odaklı sistemler göz önüne alınarak hazırlanan tek çekirdekli ekonomik alternatiflerden oluşuyorlardı. Her iki işlemci ailesini genel olarak değerlendirdiğimizde kullanıcı bazında AMD'nin Sempron ile daha olumlu bir hava yarattığını, Intel'in ise özellikle Core mimarisine geçiş ile birlikte unutulmaya yüz tutan Celeron işlemci ailesini yeniden dirilttiğini söyleyebilmek mümkün. Intel geçtiğimiz senenin sonlarına doğru yeni yıl ile birlikte Celeron işlemci ailesinin çift çekirdekli modellerini konumlandıracağı Celeron E1000 serisini yeni yıl ile birlikte kullanıma sunacağını açıklamıştı. Firma yol haritasına sadık kalarak Celeron E1000 ailesinin ilk temsilcisi olan E1200 Ocak ayının sonlarına doğru duyurdu. 65nm üretim teknolojisi ile hazırlanan E1200, yaklaşık 10 yıldır piyasada olan Celeron ailesinin çift çekirdekli ilk temsilcisi olarak Intel için önemli bir kilometre taşı oldu.

Core mimarisini esas alan işlemci 1.6GHz'de çalışıyor. 800MHz FSB hızına 512Kb seviye 2 belleğe sahip olan işlemci ayrıca 65 watt'lık termal güç tasarımına sahip. Intel'in 64-bit, EIST, EBD gibi teknolojilerine de destek veren çift çekirdekli işlemci LGA775 formunda hazırlandı. LGA775 formundaki işlemciler için hazırlanan anakartlar ile sorunsuzca çalışabilen Celeron E1200'ü takiben önümüzdeki günlerde Celeron E1400 modelini de kullanıma sunacak. E1200 E1400 modelleri arasındaki fark ise saat hızında gizli. Zira E1400, 1.6GHz değil 2GHz'de çalışıyor yani saat hızı 400MHz daha yüksek. Mevcut tablo çerçevesinde AMD ile şılaştırıldığı zaman özellikle 100$ işlemci piyasasında Intel'in çok daha fazla sayıda alternatifi kullanıcılara sunduğunu görüyoruz. Çift çekirdekli Celeron E1000 serisine ek olarak tek çekirdekli Celeron 400 çift çekirdekli daha yüksek bellek kapasitesine sahip olan Pentium E2000 serisi de pozisyonlarını korumaya devam ediyor. Zira tek çekirdekli Celeron 440 ile çift çekirdekli Celeron E1200 modelinin aynı fiyat seviyesinden sunulması üstelik performans anlamında çok daha iddialı olan Pentium E2140 yakın bir fiyat seviyesinden yoluna devam ediyor olması Intel'in özellikle gelişmekte olan ülkelerde farklı pazar stratejilerini devreye sokacağının önemli göstergeleri olarak değerlendiriliyor. 53$ civarlarında kullanıma sunulan çift çekirdekli Celeron E1200, Intel için son derece önemli bir hamle olmakla birlikte firma adına tek çekirdekten çift çok çekirdekli işlemcilere dönüşümün özellikle gelecek yıl tamamlanması öngörülüyor. Bu yılın ilk çeyreği itibariyle Celeron E1000 serisinin toplam satışların %3'ünü oluşturması beklenirken gelecek sene bu rakam %10'a kadar ulaşacak.
Intel'in çift çekirdekli Celeron E1200'ü kullanıma sunmasını takiben AMD de rakibinin bu hamlesine kayıtsız kalmadı Celeron ile aynı segmentte yer alan Sempron işlemci ailesi altında hazırladığı çift çekirdekli 2100+ modelini kullanıma sundu. Fakat bu noktada AMD'nin bazı farklı avantaj dezavantajları var. Sempron 2100+ işlemcisi 65nm üretim teknolojisi ile hazırlandı AMD'nin Phenom öncesi var olan mikroişlemci mimarisini baz alıyor. 1.8GHz'de çalışan çift çekirdekli işlemci 512Kb seviye 2 belleğe 800MHz HyperTransport hızına sahip. Soket AM2 formunda hazırlanan işlemci 700 serisi yonga setlerinin güç verdikleri de dahil olmak üzere pek çok anakart ile sorunsuzca çalışabilmekte. 65 watt'lık termal güç tasarımına sahip olan Sempron 2100+ muhtemelen Celeron E1200+'dan bir miktar daha ucuza satılacak.

kaynak: ordan burdan

Doküman (document) nesnesi dokümanının tamamını ifade etmektedir 'de kullandığımız <p>, <h1>, <div>, vb. gibi tüm komutları içerir. Doküman nesnesini 'deki <body> ü olarak düşünebilirsiniz.

Aslında ilk dersinden başlayarak, document.write() komutu ile dokümanlarına yazı eklemeyi öğrenmiştik.

Doküman Nesnesinin İçeriğini Değiştirmek
Doküman nesnenin içeriğini değiştirmek için innerHTML kullanılır. Önce doküman id="…" parametresi ile mlanır. mlanan doküman dokümantanımı.innerHTML ile içerik değiştirilir:

<>
<head>
<title>InnerHTML</title>
<script language="">
function cikis()
{
ilan.innerHTML="Barımızdan çıkış 50 milyon TL!!!"
ilan.style.color="blue"
}
function giris()
{
ilan.innerHTML="Barımıza giriş bedavadır."
ilan.style.color="black"
}
</script>
</head>
<body>

<h1 id="ilan" onmouseover="cikis()" onmouseout="giris()" >Barımıza giriş bedavadır.</h1>

</body>
</>
[Sayfayı göster] [Temizle] [İlk haline getir]

Doküman Başlığını Belirlemek
'de <title> komutu ile sayfa başlığını belirliyorduk. Sayfa başlığını değiştirmek için document.title komutunu kullanacağız.

document.title komutu, sayfa başlığı değerini taşıyor. Bu değeri değiştirdiğimizde sayfa başlığı da değişir.

<>
<head>
<title>Sayfa Başlığını Değiştirmek</title>
</head>
<body>
<p>Sayfa başlığı: <b><script language="">document.write(document.title)</script></b></p>
</body>
</>

[Sayfayı göster] [Temizle] [İlk haline getir]

Bu örnek biraz basit oldu ama document.title komutunun ne işe yaradığını gösteriyor. ları sayfasından sonra sayfa başlığını ziyaretçiye yazdırabiliriz. Veya saat bilgisini başlığa yansıtabiliriz.

Doküman Nesnesini Türünü Belirlemek
Daha önce belirttiğimiz gibi doküman nesnesi 'in herhangi bir doküman nesnesi olabilir: <p>, <h1>, <div>, vb. Nesne ne olursa olsun id parametresiyle isimlendirerek o nesne içeriğine dilediğimiz komutları verebiliriz.

Peki elimizde id ile verdiğimiz ismi kullanarak, nesnenin ne olduğunu sayfada gösterebilir miyiz? (Bazen oldukça işe yarıyor.) O nesnenin ne olduğunu bilmek istersek getElementById().tagName komutunu kullanırız.

<>
<head>
<title>getElementById() Kullanımı</title>
<script language="">

function bul(metin)
{
var x=document.getElementById(metin)
alert("Ben bir <" + x.tagName + "> elemanıyım")
}
</script>
</head>
<body>
<h1 id="eleman1" onclick="bul('eleman1')">Bana tıklarsanız, hangi nesnesi olduğumu görürsünüz!!!</h1>
<h2 id="eleman2" onclick="bul('eleman2')">Bana tıklarsanız, hangi nesnesi olduğumu görürsünüz!!!</h2>
<h3 id="eleman3" onclick="bul('eleman3')">Bana tıklarsanız, hangi nesnesi olduğumu görürsünüz!!!</h3>
<h4 id="eleman4" onclick="bul('eleman4')">Bana tıklarsanız, hangi nesnesi olduğumu görürsünüz!!!</h4>
<p id="eleman5" onclick="bul('eleman5')">Bana tıklarsanız, hangi nesnesi olduğumu görürsünüz!!!</p>
<div id="eleman6" onclick="bul('eleman6')">Bana tıklarsanız, hangi nesnesi olduğumu görürsünüz!!!</div>
</body>
</>

[Sayfayı göster] [Temizle] [İlk haline getir]

Arka Plan Rengini Değiştirmek
Arka plan rengini değiştirmek için document.bgcolor komutunu kullanırız.

<>
<head>
<title>Arka Plan Renkleri</title>
<script language="">

function renklendir(n)
{
switch(n)
{
case 1: document.bgColor="red"
break
case 2: document.bgColor="yellow"
break
case 3: document.bgColor="blue"
break
case 4: document.bgColor="orange"
break
case 5: document.bgColor="green"
break
case 6: document.bgColor="crimson"
break
default: document.bgColor="white"
break
}
}
</script>
</head>

<body>
<a href="#" onclick="renklendir(1)">Kırmızı</a><br /><br />
<a href="#" onclick="renklendir(2)">Sarı</a><br /><br />
<a href="#" onclick="renklendir(3)">Mavi</a><br /><br />
<a href="#" onclick="renklendir(4)">Turuncu</a><br /><br />
<a href="#" onclick="renklendir(5)">Yeşil</a><br /><br />
<a href="#" onclick="renklendir(6)">Bordo</a><br /><br />
<a href="#" onclick="renklendir(7)">Beyaz</a><br /><br />
</body>
</>

kaynak: ordan burdan

SPAM, biz istemesekte gelen tım, satış yada biraz sonra bahsedeceğim farklı nedenlerle gönderilen rahatsız edici istenmeyen postalara verilen dünya çapındaki isim.

Gerçek de olabilir, Kandırmaca da.

Örnek verecek olursak: "ürünlerde kampanya" "ilk üye olan bilmemkaç kişiye bilmemne" gibi şeyler.

Ama SPAM konusunda bilmemiz gereken asıl önemli konulara gelince:

Phishing ismi verilen bu mailleri açan "kurbanlar"dan koparma taktikleri, çeşitli hesaplarını elde amaçları gibi çok önemli durumlar da söz konusu.
Ayrıca virüslerin yaygınlaşması içinde çok kullanılan bir yöntem.

Bizim bu konuda dikkat etmemiz gereken noktaya gelince:

Herkesin kutusuna arkadaşından, eşinden, dostundan etkileyici, merak uyandırıcı, başkaları ile paylaşma isteği uyandıran yada paylaşıma zorlayan mailler gelir. Bizde bunları toplu şekilde listemizdeki herkese göndeririz. Forward ederiz. İletiriz.

Bunların başlıcaları: Amerika'nın ülkemiz ile ilgili komplo teorileri, bilmemkaç kişiye göndermezsek başımıza felaket geleceğinden bahseden mailler, Coca-cola'nın tuvalet temizleyici olduğu, Bill Gates'in servetini paylaştığı, maili paylaşırsak bir aç'ı doyuracağımız, LCW'nin ortakları bilmem olduğu, Bilmemkaç kişiye göndermezsek başımıza olmadık felaketler geleceği… gibi. Bu bahsettiklerim "ünlü internet efsaneleri"nden sadece birkaçı. Tahmin edebileceğiniz gibi ; YALAN. Mailin ulaştığı kişinin bu maili paylaşması için gönderilmiş, özellikle yayılması amaçlanarak üretilmiş senaryo .

Hepimize hemen hergün birkaç tane geliyor bunlardan.

Peki bu SPAM mailler geliyor? üretiliyor?

Üretilen senaryo , SPAM göndericisi tarafından binlerce kişilik listesine bir kez gönderiliyor.
Emaili alan bizler içeriğin doğru olup olmadığını bile araştırıp, düşünmeden hemen eşimizi dostumuzu bilgilendirmek için göndermeye başlıyoruz. SPAM'ı ilk atan kişinin maili de listede olduğu için, gönderilen her kişinin kötü niyetli kişilerin eline geçiyor. Bu maillerin içinde "siz eklediğinizi için" sevdiklerinizin adresleri de bulunuyor. SPAM bir anda milyonlarca kişiye ulaşıyor.

Her gönderiminde belkide yüzlerce yeni e- ekleniyor SPAM göndericinin listesine ekleniyor.
Bizde saf saf insaları bilinçlendirdiğimizi onlara yardımcı olduğumuzu sanıyoruz bu arada.

Bu durumda ne yapmalıyız peki?

Önce bu maillerin içeriğinde bir varsa, doğru olup olmadığını bir araştırın. Mantığınız ile tartın.
Ya da içeriğini gerçekten beğenip paylaşmak istiyorsanız,
Mesajın sadece göndermek istediğiniz kısmını seçip kopyalayın, yeni ileti oluşturup buraya yapıştırın.
Göndereceğiniz kişilerin adreslerini "Bcc:" kısmına yazın. "To: (kime)" kısmına sadece kendi adresinizi yazın. Bu şekilde mesajı alan kişi mesajın kopyasını aldığını bilecek, diğer gönderdiğiniz kişilerin adreslerini göremeyecek, ayrıca sizde mesajınızın düzgün gidip gitmediğini de kontrol etmiş de olacaksınız.

listenizi ele geçirmeye çalışan kişiler amaçlarına ulaşamayacaklar. Arkadaşlarınızı da korumuş olacaksınız.

Ek Notlar:
Beğendiğiniz bir yazı bulduğunuzda o yazıyı olarak atmak yerine sayfanın linkini adres bardan kopyalayıp metninize yapıştırarak gönderin. (Tüm yazıyı göndermektense, link göndermek internetin geleceği açısından da çok faydalı olacaktır.) Sizde interneti bilinçli kullanmış kullandırmış olacaksınız.

Ayrıca, Outlook gibi bir izleme ı kullanıyorsanız, bu alışkanlığınızdan vazgeçmenizi kullanımı daha hızlı kolay olan 'i kullanmanızı ederim. artık tüm e-posta hesaplarınızı kontrol etmenizi sağlayacak, kullanımı çok kolay olan bir paneli size sunuyor. Üstelik TÜRKÇE, Üsteli

kaynak: ordan burdan

<?
function rainbow($text) {
$colors = array('ff00ff','ff00cc','ff0099','ff0066','ff0033','ff0000','ff3300'
,'ff6600','ff9900','ffcc00','ffff00','ccff00','99ff00','66ff00'
,'33ff00','00ff00','00ff33','00ff66','00ff99','00ffcc','00ffff'
,'00ccff','0099ff','0066ff','0033ff','0000ff','3300ff','6600ff'
,'9900ff','cc00ff');
$i = 0;
$textlength = strlen($text);
while($i<=$textlength){
foreach($colors as $=>$value){
if ($text[$i] != "") echo "<font color="#".$value."">".$text[$i]."</font>";
$i++;
}
}
}
?>

kaynak: ordan burdan

<?
$login_url = "http://localhost/login.";
$refresh_time = 10; //time out in minutes

function user_isloggedin() {
global $LOGGED_IN, $refresh_time;
echo "<META HTTP-EQUIV=Refresh CONTENT="" . $refresh_time * 60 . "; URL=" . $login_url . "">";
if (isSet($LOGGED_IN)) {
return $LOGGED_IN;
}
if (@$_COOKIE['username'] {
$c_hour = date("H"); //Current Hour
$c_min = date("i"); //Current Minute
$c_sec = date("s"); //Current Second
$c_mon = date("m"); //Current Month
$c_day = date("d"); //Current Day
$c_year = date("Y"); //Current Year

$c_timestamp = mktime($c_hour,$c_min,$c_sec,$c_mon,$c_day,$c_year);

$t_timestamp = trim($_COOKIE['stamp']);
$diff = $c_timestamp - $t_timestamp;

if ($diff > $refresh_time * 60) {
user_logout(true);
$message = urldecode("Your session has been inactive for $refresh_time minutes.<br/>Please login again.");
header("Location: login.?message=$message");
return true;
} else {
setcookie('stamp', $c_timestamp, (time()+2592000), '/', '', 0);
return true;
}
} else {
return false;
}
} else {
return false;
}

function user_logout($timeout) {
setcookie('username', '', (time()+2592000), '/', '', 0);
}
// Function to start the session on a successful login attempt
function user_set_tokens($user_name_in) {
global $supersecrethashpadding;
$c_hour = date("H"); //Current Hour
$c_min = date("i"); //Current Minute
$c_sec = date("s"); //Current Second
$c_mon = date("m"); //Current Month
$c_day = date("d"); //Current Day
$c_year = date("Y"); //Current Year

$stamp = mktime($c_hour,$c_min,$c_sec,$c_mon,$c_day,$c_year);

if (!$user_name_in) {
$feedback = "ERROR - No username";
return false;
} else {
$username = $user_name_in;
setcookie('username', $username, (time()+2592000), '/', '', 0);
setcookie('stamp', $stamp, (time()+2592000), '/', '', 0);
}
}
?>

kaynak: ordan burdan

$message = preg_replace("/((?:[A-Za-z0-9-_.&+]+)@(?:[A-Za-z0-9-]+.)+[A-Za-z-]+)/", "[Email Removed]", $message);

kaynak: ordan burdan

<?
function md5plus($string, $password)
{
$out = md5(string.$password);
$out = $out.md5($password);
$out = md5($out);
for($i=0;$i<strlen($password);$i++)
{
$out .= md5($out);
}
$out = md5($out).strlen($password).md5($out);
$out = md5($out);
return $out;
}
?>
echo md5plus("TEST", "somepass");

kaynak: ordan burdan

// This script will generate 14 Character long very secure password
function secure_pass()
{
// The total length of the password is PASS_LEN + LEVEL1_LEN + LEVEL2_LEN
$PASS_LEN = 10; // Length of basic password (a-z)
$LEVEL1_LEN = 2; // Number of level 1 characters (1-9)
$LEVEL2_LEN = 2; // Number of level 2 characters (any other)

$LEVEL0 = 'abcdefghijklmnpqrstuvwxyz'; // no security
$LEVEL1 = '123456789'; // better security
$LEVEL2 = '_-!?*:.'; // best security

srand((double)microtime()*1000200);
$password = NULL;

// Level 0 password generation
for ($i=0;$i<$PASS_LEN;$i++)
$password = $password.$LEVEL0{rand(0,strlen($LEVEL0))};

$pos = rand(0,strlen($password)-1);
$password{$pos} = strtoupper($password{$pos});

// Level 1 mix up
for ($i=0;$i<$LEVEL1_LEN;$i++)
{
$pos = rand(0,strlen($password)-1);
$password = substr($password,0,$pos).$LEVEL1{rand(0,strlen($LEVEL1)-1)}.substr($password,$pos);
}

// Level 2 mix up
for ($i=0;$i<$LEVEL2_LEN;$i++)
{
$pos = rand(0,strlen($password)-1);
$password = substr($password,0,$pos).$LEVEL2{rand(0,strlen($LEVEL2)-1)}.substr($password,$pos);
}

return $password;
}

kaynak: ordan burdan

<?
function delete_dir($dir){
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if(is_dir($dir."/".$file)){
delete_dir($dir."/".$file);
}else{
chmod($dir."/".$file,0777);
unlink($dir."/".$file);
}
}
}
closedir($handle);
}
rmdir($dir);
}
?>

kaynak: ordan burdan

<?
function calendar($time=NULL){

// $time must be a valid unix timestamp to be used.
if (!preg_match('#[0-9]{1,10}#i',$time))
$time = time();

// Make some useful vars.
$zt = ' '; $zn = "
"; $out = ''; $day = 0;
$wd = array('Su','Mo','Tu','We','Th','Fr','Sa');
$utd = 86400; // Seconds in a day.

// Get the year and month based on $time.
$info = explode(' ',date('Y m',$time));

// Unix timestamp of the first and last day of the month.
$ut1 = mktime(0,0,0,$info[1],1,$info[0]);
$ut2 = mktime(0,0,0,$info[1],date('t',$ut),$info[0]);

// Output line 1: Full month and year.
$out .= rtrim(str_pad(date('F Y',$ut1),20,' ',STR_PAD_BOTH)).$zn;

// Output line 2: Days of the week.
for ($i=0;$i<count($wd);$i++){
$out .= $wd[$i];
if ($i < count($wd)-1) $out .= $zt;
}
$out .= $zn;

// Output lines 3 and up.
for ($ut=$ut1;$ut<=$ut2;$ut+=$utd){
$day++;

// Output line 3: Empty days.
if ($day == 1){
for ($i=0;$i<date('w',$ut);$i++){
$out .= ' '.$zt;
}
}

// Output: The day.
$out .= str_pad($day,2,' ',STR_PAD_LEFT);

// Output: Newline or tab.
if (date('w',$ut) == 6 || $day == date('t',$ut))
$out .= $zn; else $out .= $zt;

// If last day, stop.
if ($day == date('t',$ut))
break;
}

// Return the calendar!
return $out;
}
?>

kaynak: ordan burdan

<?
header("Content-Type: application/vnd.ms-excel");

echo "<table border=1>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
</table>";
?>

kaynak: ordan burdan

<?
$filename = "hits.txt" ;

if(!file_exists($filename)){
$fd = fopen ($filename , "w+");
fclose($fd);
}

$file = file($filename);
$file = array_unique($file);
$hits = count($file);
echo $hits;

$fd = fopen ($filename , "r");
$fstring = fread ($fd , filesize ($filename)) ;
fclose($fd) ;
$fd = fopen ($filename , "w");
$fcounted = $fstring."n".getenv("REMOTE_ADDR");
$fout= fwrite ($fd , $fcounted );
fclose($fd);
?>

kaynak: ordan burdan

<?
$array = array(1, "hello", 1, "world", "hello");

print_r(array_count_values($array));

?>

kaynak: ordan burdan

Açılan listeler
İlk olarak ele almak istediğim konu açılan (dropdown) listeler ile ilgili. Biliyorsunuz ki açılan listeler yapmak üzere select option etiketleri birlikte kullanılır. Örnek olarak Türkiye'nin illerinden oluşan kısa bir liste hazırlayalım. Bu liste Marmara, Ege Akdeniz bölgelerinden 3 adet şehir içersin.

Böyle bir liste hazırlamak için genellikle alttaki gibi bir kodlama yapılıyor:

<select>
<option> Marmara -> İstanbul </option>
<option> Marmara -> Bursa </option>
<option> Marmara -> Kocaeli </option>
<option> Ege -> İzmir </option>
<option> Ege -> Aydın </option>
<option> Ege -> Denizli </option>
<option> Akdeniz -> Antalya </option>
<option> Akdeniz -> İçel </option>
<option> Akdeniz -> Adana </option>
</select>

<?

$yazi='bu yazı http://www.codecodu.com';
$yazi = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href="\0">\0</a>", $yazi);
echo $yazi;
?>

kaynak: ordan burdan

ile çalışırken genellikle verilerimizi MySQL yada MSSQL gibi veritabanı sistemlerinde depolarız ancak bazı durumlarda veritabanı kullanmak gereksiz olabilir yani küçük bir txt dosyası ile işinizi halledebilecekken niye koskaca veritabanını kullanasanız ki? Bu Yazımda ile TXT Dosyalarını kullanırken yapabileceğiniz işlemleri anlatacağım. Dosya ,Kapama,İçine Veri Yazma, Okuma gibi..

TXT Dosyasını Açmak
Bir TXT Dosyasını açmak için aşağıdaki fonksiyonu kullanabilirsiniz.

<?

$fp = fopen( "notes/data/dosyaadi.txt" , "w" );

?>

Bu Fonksiyonun aldığı 1. parametre açılacak dosyanın yolunu belirtir. 2. Parametremiz ise dosyanın hangi kipte açılacağı olarak belirtebiliriz. Buraya hangi harflerin yazılabileceğine buradan bakabilirsiniz.
Bazı Durumlarda Dosyayı açarken sorunlar oluşabilir sorun oluşup oluşmadığını anlamak eğer var ise bir mesajı göstermek için şu kodu kullanabilirsiniz.

<?

if(!$fp)

{

echo "Dosya Açılamadı, Lütfen Sonra Tekrar Deneyin.";

exit;

}

?>

bu kodu koyduğunuz takdirde yorumlayıcısı eğer Dosyayı herhangi bir nedenden dolayı açamaz ise mesajı veriyor sayfanın yorumlanmasını durduruyor.

TXT Dosyasına Veri Yazmak
Bu işlem için fwrite() fonksiyonunu kullanacağız. kodlar aşağıda, açıklamaları ise onunda altında yazıyor

<?

$metin = "Bu birinci satır.
Bu 2. satır.
Aha buda 3. satır.";

fwrite( $fp, $metin );

?>

Fonksiyonun aldığı parametreleri yaptığımız işi kısaca anlatmak gerekirse. öncekikle $metin adlı bir değişken oluşturduk bu değişkene bir değer verdik. ' . ' işaretlerinden sonra kullandığım
işareti ise bir alt satıra geçmeeyi ifade ediyor yani
koyarak yazdığınız zaman Veriler yazılırken
işaretinden sonra bir alt satıra yazıyor, eğer yazmaz iseniz siz istediğiniz kadar değişken değeri verirken enter ile bir alt satıra inin metin tek satır olarak kaydedilecektir.
Gelelim fwrite() fonksiyonuna bu fonksiyonda 2 tane parametre alıyor bunlardan birinci olan TXT dosyasına bağlanırken yaratmış olduğumuz değişkenin adı (bunu çoğu işlemde kullanıcaz, kısa bir isim vermeniz sizin açınızdan daha yararlı olabilir) 2. parametre ise TXT dosyası içine ne yazılacağı. biz burda direk değişken adı verdik siz " " işaretleri arasına istediğiniz metni yazabilirsiniz ama değişkene atamanız olunur. Bu fonksiyon ile ilgili daha detaylı bilgi için tıklayınız.
TXT Dosyasına Açılan Bağlantıyı Kapatma
Bu işlem ise belkide yapacağımız en basit işlemlerden biri. bazı arkadaşlar "açılan dosyayı kapatmalıyız?" diye sorabilirler, çünkü eğer kapatmaz iseniz aynı anda bir başka şahıs üzerinden dosyaya erişmeye çalıştığında sorunlar oluşabilir bu sebeple kapatmak en sağlıklısı kapatma işlemi için kodlar ise aşağıda.

<?

fclose( $fp );

?>

fclose() fonksiyonu yalnızca 1 tane parametre alıyor oda bağlanırken kullandığımız değişkenin adı..
daha detaylı bilgi istiyorsanız sizi buraya alalım..
TXT Dosyasından Okumak
Bu işlemide yine 'nin bize sunduğu fonksiyonlarla yapacağız. buyrun kodlar.

<?

$dosya = fread( $fp, filesize( $dosyaadi ) );

?>

bu fonksiyonu aldığı parametreleri açıklamak gerekirse. fread() fonksiyonu, 2 tane parametre alıyor 1. parametre göreceğiniz tahmin edebileceğiniz gibi TXT dosyasına bağlanırken kullandığımız değişken, 2. parametremiz ise dosyanın ne kadarlık boyutunu okuyacağımız. örneğin bir satır okumak istiyorsanız buraya 1024 girebilirsiniz biz tamamını okumak istediğimiz için 'nin Dosya boyunu kb cinsinden bulmaya yarayan filesize() fonksiyonu ile tüm dosyanın boyutunu verdik. burda $dosyaadi adlı değişken fopen() fonksiyonunda 1. parametreye verdiğimiz değer olabilir. bu fonksiyon ile ilgili detaylı bilgiyede bu adresten ulaşabilirsiniz.
TXT Dosyasını Silmek
Başlığa dikkatinizi çekerim, TXT dosyasından birşey silmeyi değil komple dosyayı sunucudan silmeyi kastediyorum bununla bu işlemide yine basit bir fonksiyon ile yapacağız. ahanda kodlar

<?

unlink( "notes/data/names.txt" );

?>

kaynak: ordan burdan

MySQL'de bir çok veri türü oluşturulabilir. Ancak Web programları açısından önemli olan bir kaçı özellikleri şöyle saralanabilir:

INT Tamsayı: -2147483648'den 2147483647 kadar değişen diziye "signed" (işaretli), 0'dan 4294967295'e kadar değişenine "unsigned" (işaretsiz) denir.

VARCHAR(n) n sayısını geçmemek şartıyla değişen boyutta karakter olabilir.

CHAR(n) Kesinlikle n sayısı kadar karakter olabilir.

TEXT En fazla 65535(2^16-1) karakter alabilen metin alanı.

MEDIUMTEXT En fazla 16777215(2^24-1) karakter alabilen metin alanı.

DATE 1000-01-01'den 9999--31'e kadar değişebilen alanı.

TIMESTAMP 1 Ocak 1970'den 18 Ocak 2038'e kadar olan Yıl+Ay+Gün+Saat+Dakika+Saniye biçimindeki zaman bilgisi.

kaynak: ordan burdan

'nin Düzenli İfadeleri'nde kolaylık sağlayan mesela ziyaretçinin bir 'da bir INPUT etiketine verdiği yanıtıların içinde olmaması veya olmaması gereken karakterleri bulmamıza imkan veren karakter grupları oluşturma yöntemini de kullanabiliriz. Sözgelimi bütün sesli hafleri aratmak için şöyle bir karakter grubu oluşturabiliriz:

[OoUuÖöAaOoEeıIiİ]

Karakter gruplarını köşeli parantez içinde yazarız. Bu deyimle, , içinde herhangi bir sesli harf bulunan bütün değerleri eşleştirecektir. Bu yöntemden yararlanarak, şu grupları kullanabiliriz:

[a-z] Herhangi bir küçük harfi bulur.

[A-Z] Herhangi bir büyük harfi bulur.

[a-zA-Z] Herhangi bir büyük veya büyük harfi bulur.

[0-9] Herhangi bir rakamı bulur.

[0-9.-] Herhangi bir rakamı, noktayı veya kesme çizgisini bulur.

[ f

] Herhangi bir -feed (kağıt çıkart), Newline (yeni satır), Return (satırbaşı) karakterini veya boşluğu (space) bulur.

Sözgelimi, bir alfanümerik değer kümesinde b3, u2, n9 gibi birincisi küçük harf, ikincisi rakam olan iki karakterlik dizileri bulmak istiyorsak, arama grubunu şöyle kurarız:

^[a-z][0-9]$

Bu deyim 'ye, a'da z'ye küçük harfle başlayan, (^işareti aranan unsurun değerin başında olması gerektiğini söylüyor) sonunda 0'dan 9'a bir rakam bulunan kelimeleri bulmasını söyleyecektir. , bu kelimenin sadece iki harfli olmasına dikkat edecektir; çünkü grubumuzun bir başı bir de sonu belirlendiğine göre, üç karakterli değerlerin bulunması imkanı yoktur.

^işareti köşeli parantez içinde grup deyimi oluştururken kullanılırsa, bu olumsuzluk anlamı taşır. Sözgelimi, iki rakamlı ancak birinci karakteri rakam olmayan fakat ikinci karakteri rakam olan değerlerin bulunması için şu deyim gerekir:

^[^0-9][0-9]$

Burada en baştaki ^işareti "başında" demektir; ancak hemen arkasından gelen grupta "rakam olmayan" demiş oluyoruz; ikinci grup sonundaki $ işareti ile "rakamla biten" anlamına geliyor. Deyimde sadece baş sonu gösteren iki eşleştirme unsuru bulunduğuna göre bu deyim, "başında rakam olmayan, sonunda rakam olan iki karakterli değerleri" bulmaya yarayacaktır. Bu deyim söz gelimi 13'ü bulmayacak, fakat u2'yi bulacaktır. Bu yöntemle şu grupları yapabiliriz:

[^a-z] Küçük harf olmayan herhangi bir harfi bulur.

[^A-Z] Büyük harf olmayan herhangi bir harfi bulur.

[^\/^] , / veya ^ dışında herhangi bir karakteri bulur.

[^"'] Çift tek dışında herhangi bir karakteri bulur.

Grup oluşturmada kullandığımız özel karakterler de vardır. Örneğin nokta işareti (.), yeni satır başlangıcı olmayan herhangi bir karakter anlamına gelir. Dolayısıyla,

^.0$

deyimi yeni satırla başlamayan sıfır ile biten herhangi iki karakterli değeri bulacaktır.

'nin kullanılmaya hazır özel Düzenli İfade eşleştirme grupları da vardır:

[[:alpha:]] Herhangi bir harf

[[:digit:]] Herhangi bir rakam

[[:alnum:]] Herhangi bir harf veya rakam

[[:space:]] Herhangi bir boş karakter

[[:upper:]] Herhangi bir büyük harf

[[:lower:]] Herhangi bir küçük harf

[[:punc:]] Herhangi bir noktalama işareti

[[:xdigit:]] Herhangi bir Hexadecimal karakter. [0-9a-fA-F]

Karakter eşleştirmede tekrar sayısı da bir özellik olarak kullanılabilir. Tekrar sayısı belirtmek için süslü parantez ({}) kullanırız. Örnekler:

^a{4}$ İçinde sadece dört küçük a harfi bulunan kelimeleri seç: aaaa.

^a{2,4}$ İçinde sadece iki üç veya dört küçük a harfi bulunan kelimeleri seç: aa, aaa, aaaa gibi

^a{2, } İki veya daha fazla küçük a harfi bulunan kelimeleri seç: haar, haaar, haaaar gibi. Bu deyim "har" kelimesini seçmez.

{2} Ardarda iki sekme işaretini bul

.{2} Herhangi çift karakteri bul: aa, &&, == gibi

^-{0,1}[0-9]{1,}$ Negatif veya pozitif herhangi bir tam sayıyı bul

^[0-9]{1,}$ Pozitif herhangi bir tam sayıyı bul

Bu tür deyim oluşturma işlemleri giderek karmaşıklaşabilir. Örneğin:

^-{0,1}[0-9]{0, }.{0,1}[0-9]{0, }$

Bu karmaşık deyim aslında sadece "Negatif veya pozitif bir ondalık (double) değeri bul," anlamına geliyor. Kısaca irdelersek, aranan degerin sıfır veya bir kere tekrarlanan bir kesme çizgisiyle başlayabileceğini ("Sıfır veya bir kere" demek, olsa da olur, olmasa da anlamına geliyor!) bunu sıfır veya daha fazla kere tekrarlanan bir rakamın izleyebileceğini, onu da sıfır veya bir kere tekrarlanan bir nokta işareti ile sonunda sıfır veya daha fazla kere tekrarlanan herhangi bir rakamın izleyebileceğini söylemiş oluyoruz.

bu tür karmaşık ifadelerin hatasız yazılmasını sağlayan kısayollara sahiptir. Bunları sıralayalım:

? {0,1} anlamına gelir. Kendisinden önce yer alan unsurun en az sıfır en çok bir kere tekrar edilmesi gerektiğini (olmayabileceğini ama olursa en fazla bir kere olabileceğini) belirtir.

* {0, } anlamına gelir. Kendisinden önce yer alan unsurun sıfır veya daha fazla kere tekrar edilmesi gerektiğini (tümüyle opsiyonel olduğunu) belirtir.

+ {1, } anlamına gelir. Kendisinden önce yer alan unsurun en az bir veya daha çok kere tekrar edilmesi gerektiğini (bulunmasının zorunlu olduğunu) belirtir.

Bu kısa-yolları kullanarak, yukarıdaki karmaşık ifadeleri basitleştirelim:

^[a-zA-Z0-9_]+Ş En az bir harf veya rakam veya altçizgi içeren herhangi bir kelime

^[0-9]+Ş Herhangi bir pozitif tamsayı

^-?[0-9]+Ş Herhangi bir tamsayı

^-?[0-9]*.[0-9*$]+Ş Herhangi bir kesinli (double) sayı

Bir Düzenli İfade'nin yazılışında birden fazla arama-sıralanış deyimine yer verebiliriz. Bunu yapmamızı sağlayan | işaretidir. Örneğin,

.com|.co.uk

ifadesi ile, ya ".com" ya da ".co.uk" değerlerinin bulunmasını sağlayabiliriz. Burada | işareti "veya" kelimesi gibi düşünebilirsiniz.

Düzenli ifadeler yoluyla INPUT etiketinden gelen değerleri incelerken yapmak kolaydır. Bunun için kendi ifadelerinizi mutlaka sçeşitli olasılıklara şı sınamalısınız. Bu ün başında örnek olarak verdiğimiz Düzenli İfade'yi hatırlıyor musunuz?

^.+@.+\..+$

Örneğin bu ifade, ziyaretçinin elektronik posta adresini yazması gereken bir INPUT etiketinin sağladığı değerin gerçekten elektronik adres biçimi taşıyıp taşımadığını sınar. Baştaki ^ nokta işaretleri ile artı işareti değerin önünde boşluk olmamasını sağlıyor; @ işareti ise değerin içinde @ bulunması gerektiğine işaret ediyor. Tekrar eden nokta artı işaretleri "ne kadar olursa olsun ne olursa olsun" anlamına geliyor. Bunu izleyen nokta karakterini gösteren (.) işaret buralarda bir de gerçekten nokta olması gerektiğini bunu izleyen nokta artı tekrar "ne olursa olsun, ne kadar olursa olsun" anlamını taşıyor. Başka bir deyişle, aradığımız değerin "herhangi bir şey" @ "herhangi bir şey daha" . "birşeyler daha" şeklinde olduğunu belirtmiş oluyoruz. Ne var ki deyimiçinde iki nokta veya iki @ işareti olan veya @ işareti ile nokta arasında bir şey bulunmayan veya @ veya noktadan öncesi ya da sonrası boş olan bütün değerleri safdışı etmeye yetmeyecektir. Sözgelimi bir ziyaretçimiz "@@@@.@@@" yazarsa, bu deyim bu değeri geçerli bir elektronik adres sayacaktır.

programlarımızda ziyaretçilerimizin verdiği değerleri çeşitli bakımlardan sınamak seçmek mümkündür; ancak hiç bir zaman yazılanların doğruluğunu garanti edemeyiz. Fakat özellikle bir metinde bulunmaması gereken işaretlleri 'ye aratabiliriz. Bunu Düzenli İfade Fonksiyonları sağlar.

kaynak: ordan burdan