Umut Ulus

Kişisel İnternet Günlüğü

Javascript, bütün web tarayıcıları tarafından kullanılan bir dildir. Yani eğer web üzerinde programlama yapıyorsak bu dili öğrenmek bize inanılmaz avantaj sağlar. İşi gereği Ajax kullanma ihtiyacı hisseden herkes eninde sonunda bir şekilde Javascript’e bulaşmak zorunda kalır. Ancak diğer zamanlarda C#, Vb.Net, vbscript ya da coldfusion gibi diller kullanan yazılımcılar günün birinde -zorunluluktan- javascript kullanmaya niyetlendiğinde, çok iyi bildiği diğer dilden vaz geçip hiç araştırmaya vakit bulamadan javascript kullanmaya başlayınca ne yazık ki sonunda oradan buradan bulduğu kodları “güzelce” kopyala yapıştır yapıp çalışmasını beklerler. Elbette bu da sorunlara yol açtığı zaman sorunu “mülayim” javascript’te bulurlar. Evet, Javascript aslında oldukça mülayim bir dildir. Öyle ki, aslında javascript derleyicisi bize dert çıkartmamak için elinden geleni yapar. Örneğin, hepimizin bildiği gibi javascript komutları noktalı virgül (semicolon [;]) ile ayrılır. Diğer pek çok C türevi dilde bunu yerleştirmediğimizde derleyiciden hata alır komutumuzu derleyemeyiz. Ancak javascript derleyicisinde, her kod satırı çalışsın diye “semicolon correction” adında bir mekanizma yer alır. Bu mekanizma ile birlikte satır sonlarında eğer scope parantezi, ({ ya da }) yoksa derleyici otomatik olarak noktalı virgül işaretini yerleştirecektir. Tabi ki bu da çoğu zaman başımıza dert açabilir. Bu yüzden javascript ile kod yazarken en dikkat etmemiz gereken şey, herşeyi kuralına göre yapmış olmamızdır. örneğin,

return
{
degisken : true
}

gibi bir kod yazdığımızı düşünelim. Bu durumda derleyici üstteki kodu aşağıdaki gibi düzeltecektir,

return;
{
degisken : true;
}

yani böyle bir durumda geri dönüş değerinin bir nesne olmasını beklerken sürekli undefined sonucunu elde etmemiz çok da süpriz olmamalıdır. Bu kodun doğrusu aşağıdaki gibi yazılmalıdır,

return {
degisken: true;
};


Bu gibi sorunların yanında en çok problem “if” gibi mantıksal ifadelerde karşımıza çıkar. C ve türevi dillerden gelen alışkanlıkla mantıksal eşitlik için daima “==”(eqeq) kullanmaya alışmış bir yazılımcı javascript için de aynısını kullanır. Ancak burada diğer dillerden farklı olarak, javascript derleyicisi eqeq operatörünü kullanırken tipler arasında sıkıntı yaşamamak için tip dönüşümü yapar. Yani bu durumda aşağıdaki sorunlar karşımıza çıkabilir,


alert(’\r\n\t’ == 0); // true
alert(false == ‘0′); // true
alert(0 == ‘0′); // true
alert(” == 0); // true
alert(undefined == null); // true

Ancak javascript bu durumun bir çözümünü de bizlere sunmaktadır. Bu sorunla karşılaşmamak için “===”(eqeqeq) operatörünü kullanabiliyoruz. yani (false === ‘0′) ifadesi bize false değerini döndürüyor. Çünkü ifadenin bir yanında boolean bir değer varken diğer tarafta ise bir string değeri yer alıyor. Benzer şekilde bir başka problem ise, değeri verilmemiş bir değişkenin değerinin ne olacağıdır. Bu undefined ya da null olabilir. Bunun içinse çoğu zaman

if(degisken != null || degisken != undefined || degisken != ‘undefined’) { .. }

yazmak zorunda kalabiliriz. Bunun bir çözümü de basitçe değişkeni mantıksal yolla sınamaktır,

if(degisken){…}

Bu şekilde yazdığımızda bir ifadede javascript derleyicisi, if mantıksal sınamasında öncelikle degisken’in değerine bakar, eğer bu değer dolu ise true, değil ise false değerini döndürür.

Javascript number, string, boolean, null ve undefined gibi tiplerden oluşur. Yani diğer dillerde gördüğümüz kadar çok tip yer almaz. Bunun dışındaki tüm tipler birer object tir. Tanımlanmamış her object undefined ya da null değerini alır. Eğer bu değerlere sahip olmayan bir nesne yaratmak istiyorsak bunu aşağıdaki gibi yapabiliriz,

var bos_nesne = {};

Yukarıdaki tanımda yer alan nesnenin değeri object olarak gelecektir. Bu nesnenin içerisine özellikler eklememiz de mümkün,

var yeni_nesne = {
ozellik1 : ’string değer’,
ozellik2 : 12,
ozellik3 : true,
fonksiyon : function(x){
return x * 2;
}
};

Yukarıdaki örnekte de görüldüğü gibi bir nesnenin özellikleri değişken tipleri olarak verilebileceği gibi birer fonksiyon olarak da tanımlanabiliyor. Böyle bir yaklaşımla gayet nesneye yönelik bir tasarıma da izin verilmektedir. Benzer şekilde bir nesneye yapıcı method da tanımlamak mümkündür,

var nokta = function(x, y){
this._x = x;
this._y = y;
};

Javascript nesnelerinin (javascript 1.1′den itibaren) her birinde prototype adında bir özellik bulunur. Biraz ciddi bakıldığında bu prototype özelliğinin, javascript nesnelerinin nesneye yönelik programlamaya açılan kapıları gibi olduğu söylenebilir. Bir nesneye ait prototype özelliğine eklediğiniz her yeni fonksiyon ya da özellik o nesnenin tüm kopyaları için geçerli olur. Yani bir nesnenin prototype özelliğini kopyaladığınızda o nesneye ait tüm özellik ve fonksiyonları da miras almış olursunuz. Bu şekilde çok daha karmaşık sistemleri kısa ve etkili bir şekilde tasarlayabilir, nesneye yönelik tasarım kalıplarını javascript ile uygulama şansını elde edebilirsiniz. Şimdi aşağıda, üstte tanımladığımız nokta nesnesine yeni bir fonksiyon ekleyelim,

nokta.prototype.MesajGoster = function(){
alert(this._x + ‘:’ + this._y);
};


Böylece aşağıdaki gibi bir kullanımı rahatlıkla yapabiliriz,

var yeni_nokta = new nokta(10,12);
nokta.MesajGoster();

Bu tanımla birlikte, nokta nesnesini miras alan bir baska nesne de MesajGoster fonksiyonundan faydalanabilir. Şimdi yeni bir nokta nesnesi yapalım ve bu nesne daha once yaptığımız nokta nesnesinin MesajGoster ozelligini miras alsın,

var altNokta = function(x, y){
this._x = x * 2;
this._y = y * 2;
};

altNokta.prototype = nokta.prototype;
var alt_nokta = new altNokta(1,2);
alt_nokta.MesajGoster();

Yukarıdaki örneği de uyguladığımız zaman, aslında altNokta nesnesine MesajGoster() fonksiyonunu tanımlamamış olmamıza rağmen, bu fonksiyonun çalıştığını görebilirsiniz. Peki şimdi burada bir problemimiz daha var. Farkındaysanız yapıcı metodlar arasında kodu tekrarlamak durumunda kaldık. Şimdi de hem bunu engelleyelim, hem de miras alma olayını ortak bir yapıya çekelim. Bunun bu tarz işlemlerde bize kolaylık sağlayacak aşağıdaki fonksiyonu kullanabiliriz,

var inherits = function(subObject, baseObject){
subObject.prototype["base"] = baseObject;
for (var subPrototype in baseObject.prototype) {
if(subPrototype !== “base”){
subObject.prototype[subPrototype] = baseObject.prototype[subPrototype];
}
}
}

Öncelikle yukarıda ne yaptığımızı biraz anlamaya çalışalım. İlk başta miras alacak olan nesnenin prototipine base isminde yeni bir özellik ekledik. Bu şu demek, artık miras alacak olan subObject nesnesinin miras aldığı nesne değerine sahip bir özelliği var. Yani kendi içerisinde this.base dediğimizde ya da dışarıdan nesneAdi.base dediğimizde o nesnenin ust sınıfına erişebiliyoruz. Üstte yaptığımız örneği bu yapıda tekrar edelim,

var altNokta = function(x, y){
this.base(x * 2, y * 2);
};
inherits(altNokta, nokta);

Sanırım bu şekilde nesneye yönelik diğer dillere daha yakın bir kullanım elde edebildik. Javascript ile temel düzeyde miras alma işlemini öğrendiğimize göre son bir örnek yapalım. Şimdi yapacağımız örnekte aynı tipten türemiş iki tane nesneden tipine göre bizim ihtiyacımızı döndüren bir fabrika methodu hazırlayalım. Aynı Urunler nesnesinden türeyen iki nesnemiz olsun, biri Kalemler diğeri ise Kitaplar. öncelikle Urunler nesnesini tasarlayalim,

var Urunler = function(urunTipi, urunAdi){
this._urunTipi = urunTipi;
this._urunAdi  = urunAdi;
};
Urunler.prototype.Yukle = function(){
alert(”Urun tipi ” + this._urunTipi + ” olan ” + this._urunAdi + ” yuklendi.”);
};

Ardından bu nesneyi miras almış olan Kalemler ve Kitaplar nesnelerini tasarlayalım.

var Kalemler = function(urunAdi){
this.base(”kalem”, urunAdi);
};
inherits(Kalemler, Urunler);

var Kitaplar = function(urunAdi){
this.base(”kitap”, urunAdi);
};
inherits(Kitaplar, Urunler);

Şimdi de bu iki nesneyi yaratıcak olan UrunFabrikasi’ni tasarlayalim,

var UrunFabrikasi = {
UrunYarat : function(urunTipi, urunAdi){
switch(urunTipi){
case “kitap”:
return new Kitaplar(urunAdi);
break;
case “kalem”:
return new Kalemler(urunAdi);
break;
}
}
};

Artık örneğimizi bitirdik, buradaki yapıyı aşağıdaki gibi kullanabiliriz,

var urun = UrunFabrikasi.UrunYarat(”kalem”, “Yeni bir kalem”);
urun.Yukle();

Daha anlatılacak çok şey olmasına rağmen burada ara veriyorum. Bu yazıya başlarken amaçladığım şey, her ne kadar yazılım dilleri değişse de ortak yöntemlerin ya da methodların bir şekilde adapte edilebileceğini ve javascript’in de doğru kullanıldığında neler başarabileceğini göstermekti. Umarım artık sizin de javascript’e bakış açınız bu yazıyı okumadan önceki gibi değildir. Görüşmek üzere

Alıntıdır.

Posted by Umut On Kasım - 11 - 2009 Alıntılar Genel

adlı yazımızda telefonların günlük yaşantımızda ne kadar zararlı oldugundan bahsetmiştim.Telefonların bu özellikleri olduğunu biliyormuydunuz şahsen ben çoğunu bilmiyordum ve artık bu gibi durumlar başıma geldiğimde hemen uygulamasını yaparım.
1) Uluslararası Acil Numara
Eğer telefonunuz kapsama alanı dışındaysa ve
acil bir durum var ise, 112′yi çevirin. Varolan herhangi bir network
bulunup, yardım isteyebilirsiniz. Daha enteresanı, tuş takımınız kilitli
olsa dahi, 112 çevrilebilir.
2) Eğer uzaktan kumandalı araç anahtarınızı arabanızda kilitli unuttuysanız
Aracinizin yedek anahtari eğer baska birinde varsa, aradaki uzaklık
ne olursa olsun, o kisiyi cep telefonunuzla arayin. Aracinizin kapisina 25-
30 cm uzakta cep telefonunuzu tutun, karsi taraf da yedek anahtarin acma
dugmesine(cep telefonuna yakin bir mesafede tutarak) basin. Kapiniz
acilacaktir ve aynı şey Bagaj icin de gecerlidir.
3) Gizli pil gücü:
Eger cep telefonunuzun pil seviyesi çok düsükse ve acil bir
telefon bekliyorsaniz; Nokialar, rezerve pile sahiptir. *3370# tuslarına
basarak, telefonunuzu, rezerv pille çalisir hale getirebilirsiniz.
Cihaziniz pil seviyesinde %50 artis gösterecek ve telefonunuzu sarj
ettiginizde, rezerv piliniz de tekrar dolacaktır.
4) Turkiye’deki tum hastaneler ayni numarada birlesti
Acil durumlarda 444 0 911 numarali telefon hattini arayan vatandaslar, en yakin
hastaneye en hizli sekilde ulasabilecek, ilgili hastaneden ambulans aninda
yola cikacak.Cep telefonundan aranma durumunda ise oturulan sehrin alan
kodu ile birlikte 444 0 911 numaralı hat aranacak. Ornegin cep telefonundan
(0212) 444 0 911 numarayi arayan vatandas, Istanbul’da,
kendisinin bulundugu noktaya en yakin hastaneye en hizli sekilde ulasabilecek.Sabit telefonla aramada ise herhangi bir kod cevirmeden direkt 444 0 911 aranacak. Bu telefon arandiginda kisiye en yakın hastaneden ambulans olay yerine gönderilecektir

Posted by Umut On Kasım - 10 - 2009 Alıntılar Genel

Yeni işletim sistemi vista da asp veya aspx çalıştırmak için gerekli kurulum. Devam linkine tıklayın şimdi
Öncelikle Denetim Masası’ndan Kullanıcı Hesapları bölümüne girip UAC’yi devre dışı bırakacağız.
Denetim Masasına giriyoruz ve Kullanıcı Hesapları’na tıklayıp aşağıdaki ekrana ulaşıyoruz. Burada Kullanıcı Hesabı Denetimi’ni aç veya kapat yazısına tıklıyoruz. Daha sonra karşımıza çıkan ekrandaki Bilgisayarınızı korumaya yardımcı olması için Kullanıcı Hesabı Denetimi’ni (UAC) Kullanın seçeneğindeki işareti kaldırıp Tamam butonuna tıklıyoruz. Bilgisayarın yeniden başlatılmasını isteyen ekrandan Şimdi Yeniden Başlat’ı tıklayarak bilgisayarımızı yeniden başlatıyoruz.

Şimdi Vista için IIS7 Kurulumuna Başlayabiliriz.

Öncelikle Windows XP’nin aksine cd’den değil Denetim Masası’ndaki Program ve Özellikler bölümünden IIS7 için yükleme işlemine başlıyoruz. Denetim Masasına girerek Program ve Özellikler simgesini tıklıyoruz.  Burada Windows Özelliklerini aç veya kapat bölümüne tıklıyoruz. Daha sonra karşımıza windows özelliklerini kurup kaldırabileceğimiz aşağıdaki gibi bir menü çıkıyor. Internet Information Services kutucuğunu işaretliyoruz.

Internet Information Services kutucuğunu işaretledikten sonra tıklayarak sırasıyla World Wide Web Hizmetleri ve Uygulama Geliştirme Özellikleri’nide tıklıyoruz. Burada açılan menüde ASP seçeneğini işaretliyoruz. Bunu işaretlediğimizde ISAPI Uzantıları seçeneği de otomatik olarak işaretleniyor. Tamam butonuna tıklayıp yüklemeyi başlatıyoruz. Yükleme işlemi birkaç dakika içinde tamamlanıyor.

Daha sonra Internet Explorer ya da kullandığınız herhangi bir web tarayıcısında bir sayfa açıp adres satırına http://localhost yazıp adrese giriyoruz. Karşımıza kurulumun sorunsuz çalıştığını gösteren IIS7 yazısı çıkıyor.

Yükleme işlemi tamamlandıktan sonra Bilgisayarımdan C sürücüsüne tıklıyoruz. Gördüğünüz gibi inetpub adında bir klasör oluşturuldu. inetpub klasörünü tıklıyoruz. Daha sonra karşımıza web dosyalarımızı içine koyacağımız wwwroot klasörü çıkıyor. wwwroot klasörüne tıklıyoruz. wwwroot klasörü içindeki dosyaları siliyoruz (silmek şart değildir) ve kendi dosyalarımızı oluşturuyor ya da yüklüyoruz. Kendi dosyalarımız için db adında veritabanlarımızı içinde barındıracağımız bir klasör oluşturmanızı öneririz.

Yazma İzinleri ve Etkinleştirme Ayarları

Öncelikle Denetim Masasısına giriyoruz. Burada Yönetimsel Araçlar / Internet Information Services (IIS) Yöneticisi simgesine tıklıyoruz. Vista’nın ilk kurulumunda bu IIS Manager olarak da görünebilir.


Burada karşımıza Internet Information Services (IIS) Yöneticisi ekranı çıkacak. Öncelikle Web Siteleri klasörü altındaki 1 sayısı ile gösterdiğimiz Default Web Site simgesine tıklıyoruz. Daha sonra ise ekranda görülen ASP simgesine tıklayarak açıyoruz.

Orta konumdaki ASP bölümündeki seçeneklerden Üst Yolları Etkinleştir yazan seçeneğinin yanındaki False değerini True olarak değiştiriyoruz. Hata Ayıklama Özellikleri bölümüne geliyoruz. Burada Hataları Tarayıcıya Gönder seçeneğinin yanındaki False değerini True olarak değiştiriyoruz. Böylelikle hataları tarayıcıdan izleme olanağımız olmuş oluyor. Daha sonrada Kod Hata İletisi seçeneğine dilerseniz Serverda ya da Urlde Problemler Oluştu. Lütfen Sistem Yöneticisiyle İletişime Geçiniz. şeklinde bir hata iletisi yazabilirsiniz. İşlemlerimizin aktif olabilmesi için sağ üst tarafta bulunan Eylemler başlığı altındaki Uygula butonuna basıp ayarlarımızı kaydediyoruz.

Localhost’ta dosyalarımızı görüntüleyebilmek için Dizinlere Gözatma seçeneğine tıklıyoruz açılan sayfada (Saat, Boyut gibi) kutucukların hepsini işaretliyoruz ve Uygula butonuna tıklıyoruz (bu işlem web yayını yapacaksanız önerilmez).

Uygula butonuna bastıktan sonra localhost’ta yüklü bulunan ya da oluşturduğumuz çalışmalarımızı görüntüleyebiliriz.

Yazma İzinleri

İlk olarak Kimlik Doğrulama simgesine tıklıyoruz.


Kimlik Doğrulama simgesine tıkladıktan sonra karşımıza Anonim Kimlik Doğrulaması şeklinde bir seçenek çıkacak. Bu seçeneğin üzerine gelip sectikten sonra Eylemler başlığı altındaki Düzenle butonuna tıklıyoruz.

 Düzenle butonuna tıkladığımızda IUSR şeklinde belirli bir kullanıcı seçilmiş olarak çıkar. Biz Uygulama havuzu kimliği seçeneğini işaretleyip Tamam butonuna tıklıyoruz ve uygulamalardan çıkıyoruz.


Son İşlemler

Bilgisayarımdan C sürücüsüne tıklıyoruz. Daha sonrada inetpub klasörüne tıklıyoruz. wwwroot klasörüne sağ tuşla tıklıyoruz ve Özellikler bölümüne tıklıyoruz.

Yukarıdaki Güvenlik yazan bölüme giriyoruz. Güvenlik bölümünde IIS_IUSRS(BilgisayarınızınAdı\IIS_IUSRS) şeklinde bir seçenek mevcut bu seçeneği seçip alttaki izin listesindeki tüm kutucukları işaretliyoruz ve Tamam butonuna tıklıyoruz. Aşağıdaki resimde göründüğü gibi Güvenlik Bilgisi Ayarlanan şeklinde bir güncelleme kutusu çıkıyor.

Son olarak Genel bölümüne girip buradaki Salt Okunur işaretini kaldırıyoruz ve Tamam butonuna tıklıyoruz.

Karşımıza Öznitelik Değişikliklerini Onayla kutusu çıkıyor. Burada Değişiklikleri bu klasöre, alt Klasörler ve dosyalara uygula seçeneğini işaretleyip Tamam butonuna tıklıyoruz. Aynı şekilde db klasörümüzede son işlemleri yapıyoruz. Şimdi web sayfalarımızı sorunsuz olarak izleyip yayınlayabiliriz.

Posted by Umut On Nisan - 28 - 2009 Alıntılar

Internetten kısa zamanda ve basitçe para kazanmanın en çok kullanılan yolları aşağıda… Bu kriz ortamında, nakit akışlarınızdaki hareketliliğin sizi sevindireceği şüphesiz.

Yapmanız gerekenler çok basit. Aşağıdaki yöntemlerden birini, birkaçını veya hepsini uygulamanız yeterli. Farklı farklı yöntemlerle daha da çok kazanmanız mümkün yani tek yönteme bağlı kalmak zorunluluğunuz da yok.

1) Internette Gezinerek Para Kazanmak ( Normal Aktivitelerinize Devam Etmeniz Yeterli)

İnternete bağlanıp normal olarak yaptığınız işleri yapıp çıktığınız için para kazanmanızı sağlayabilecek belkide tek program Gomez Peer. Üye olduktan sonra size para kazandıracak programı bilgisayarınıza kurmanız gerekli. Internete bağlı kaldığınız sürece bırakın bu program arkada çalışsın. Reklam pencerelerini seyretmek, tıklamalarla boğuşmak hatta ve hatta bilgisayarınızın başında bile bulunmak zorunda değilsiniz!. Gomez Peer ile en rahat para kazanma deneyimine erişmek için, hemen kazan linkine tıklayıp paraları kazanmaya başlayın !

Önemli Gomezpeer uyarısı: Gomezpeer kullanırken PENDING, yani bekleme modundan ACTIVE, yani aktif ödeme durumuna geçmek istiyorsanız. PROGRAMI MUTLAKA İNDİRİP ÇALIŞTIRMALISINIZ YOKSA ACTIVE OLAMAZSINIZ DOLAYISIYLA PARA DA KAZANAMAZSINIZ!! Er yada geç bekleme modundan çıkıp aktif moda gireceksiniz. Program için moneybookers yada paypal internet para hesabınızı oluşturmayı unutmayın yoksa belirtilen ayda kazandığınız paralardan FERAGAT ETMİŞ OLURSUNUZ.

GOMEZ PEER

2) Reklam İzleyerek Para Kazanmak

Reklammatik, İzleyen Kazanıyor ve Reklam İzle Kazan (R.İ.K), youtube gibi videoları izleyebilidiğiniz bir arayüze sahip. Reklamları izliyorsunuz, reklamdaki şifreyi giriyorsunuz ve paraları kazanıyorsunuz. Her ne kadar İzleyen Kazanıyor bu konuda ilk çalışmaları başlatmışsa da, yayın hayatına Reklammatikten geç girmiştir. Bu gruba son olarak R.İ.K’i ekledik. R.İ.K para değil, birbirinden kıymetli armağanlar dağıtıyor. Kazanmak için aşağıdaki bannerlere tıklayın. Tamamiyle Türkçe olan bu programları kaçırmayın.

REKLAMATİK

3) Mail ve SMS Okuyarak Para Kazanmak

Süper teklif size para kazandıracak izinli e-posta ve sms reklam sistemidir. Banner aşağıda:

SÜPERTEKLİF

4) Tıklayarak Para Kazanmak

Arkadaşlar, linke tıkla para kazan programlarının mantığı, kayıt olduktan sonra linklere tıklayarak para kazanmaktır. İnternetten para kazanırken en fazla geliri bu programları aktif olarak kullanarak elde edeceksiniz. EN ÇOK PARA BU PROGRAMLARDA. İsterseniz birine üye olun sadece farketmez. Ama tavsiyem, hepsini de aktif olarak kullanmanız.

* TakeTheGlobe: 60-100 arasında çıkardığı reklam sayısı ile, paraları saça saça bitiremeyen bir program. Kesinlikle kayıt olmalısınız. Bu program KAÇ-MAZ!

TAKE THE GLOBE

5) Dosya Paylaşarak Para Kazanmak

Hizmette sınır yok arkadaşlar. İşte daha önce görülmemiş duyulmamış bir şekilde para kazanma yöntemi. Easy Share ve Ziddu, birer dosya paylaşım platformları. Rapidshare ile yarışmak istiyorlar ama biliyorsunuz ki bu çok zor. O yüzden, üye olup, üstünden dosya paylaşan herkese paracıklar saçıyor. Hemen üye olun ve bu fırsatı kaçırmayın. Rapidshare’e para kaptıracağınıza, dosya paylaşımından para kazanın.

Posted by Umut On Mart - 2 - 2009 Alıntılar Kişisel

Rss Besleme

Video

Etiketler

Porno İzle