Merhaba arkadaşlar. Bugün siz değerli okuyucularıma Nokia N97 ile Youtube.com adresine nasıl gireceğinizden bahsedeceğim. Malumunuz N97 içerisinde Youtube eklentisi mevcut. Fakat ülkemizde Youtube.com adresi yasaklı olduğu için N97 sahipleri malesef ki bu eklentiyi kullanamamaktalar. Youtube internet sayfasına girmek için kullanılan yöntemlerin en başında DNS değiştirmek gelir. Aynen bilgisayarınızda olduğu gibi N97 telefonunuzda da DNS [...]
Yazan : Şadi Evren ŞEKER
Özellikle C++ dilinde dosyalara erişmek ve dosyalar üzerinde işlem yapmak için çeşitli fonksiyonlardan oluşan bir kütüphanenin ismidir.
Aslında bilgisayarlardaki giriş çıkış işlemlerini ( I/O input/output) dört ana başlıkta toplamak mümkündür.
Bu yazının amacı, dosyala giriş çıkış işlemlerini içeren fstream kütüphanesini tanıtmaktır.
Yine başlamadan önce bilinmesi gerekir ki dosyalar programlama dillerinde iki ana grup altında incelenebilir:
Metin dosyalarını basitçe bir metin editörüyle açıp okuduğumuz (örneğin notepad, vi gibi) dosyalar olarak düşünebiliriz. Bu dosyalarda veri ardışık bir şekilde (sequential) dosyaya yazılmıştır. Dosyadaki herhangi bir veriye erişmek için dosyanın başından o veriye kadar ilerlemek gerekir.
İkili dosyalarda ise, dosyada bulunan verilere erişmeyi rastgele olarak yapabiliriz. Örneğin dosyanın 100. byte’ındaki bir veriye tek seferde erişilebilir. Ancak ikili dosyaların okunması ve yazılması metin dosyaları kadar basit değildir. Bu dosya tiplerinin kodlanma durumlarına göre özel editörler ile açılması gerekir. Örneğin herhangi bir ofis uygulaması ile (openoffice, microsoft office gibi) kaydettiğiniz bir dökümanı basit bir metin editörü ile açmayı deneyebilirsiniz. Dosya açıldığında sizin için anlamsız semboller belirecektir. Sembollerin bu şekilde belirmesinin sebebi aslında dosyada bulunan değerlere ASCII tablosundan birer karşılık aranmasından kaynaklanmaktadır. Oysaki bir ikili dosyadaki değerlerin ASCII karşılığı olması gerekmez.
Dosyalama işlemlerini içeren fstream kütüphanesini bu yazı kapsamında 4 grupta inceleyeceğiz.
Dosyaların açılması
Dosyalar 3 farklı şekilde açılabilir:
Basitçe okuma şeklinde açılan bir dosyadan sadece veri okunabilir. Yazma şeklindeki dosyalara veri yazılabilir ve dosyada daha önceden bulunan bütün veriler silinir (bir anlamda üzerine yazılmış olur). Ekleme şeklinde açılan dosyalarda ise mevcut veri saklanır ve yazılan veriler dosyanın sonuna ilave edilir.
Dosyaların iki farklı tutulma şekli bulunduğunu daha önce görmüştük. Aşağıda dosyaların bu tutulma şekillerine (ikili veya metin) ve yukarıdaki açılma şekillerine göre fstream kütüphanesinden hangi fonksiyonla açıldığını görmekteyiz:
| Metin Dosyaları | İkili Dosyalar | |
| Yazma Şekli
(Write mode) |
Yazmak için
ofstream out (”dosya.txt”); veya ofstream out; out.open(”dosya.txt”); |
Yazmak için
ofstream out (”dosya.txt”,ios::binary); veya ofstream out; out.open(”dosya.txt”, ios::binary); |
| Ekleme Şekli
(Append Mode) |
ofstream out(”dosya.txt”,ios::app);
veya ofstream out; out.open(”dosya.txt”, ios::app); |
ofstream out (”dosya.txt”,ios::app|ios::binary);
veya ofstream out; out.open(”dosya.txt”, ios::app | ios::binary); |
| Okuma Şekli
(Read Mode) |
ifstream in (”dosya.txt”);
veya ifstream in ; in.open(”dosya.txt”); |
ifstream in (”dosya.txt”, ios::binary);
veya ifstream in ; in.open(”dosya.txt”, ios::binary); |
Yukarıdaki tablodaki kod örnekleri kullanılarak bir dosya okuma, yazma veya ekleme şekillerinde açılabilir.
Dosyaların Kapatılması
Dosya işlemleri sırasında özellikle bir dosyaya veri yazıldıktan sonra dosyanın kapatılması çok önemlidir. Çünkü işletim sistemi bir dosyaya yazılacak olan verileri doğrudan yazmak yerine hafızada bekletebilir. Bunun sebebi dosyaya yazılacak veriler üzerinde ileride bir değişiklik olma ihtimali ve bu durumda dosyaya erişmeden hafıza üzerinden ilgili değişikliğin yapılmasıdır.
Ancak dosya kapatıldığı zaman, programımızda dosyaya yazılmasını istediğimiz şeylerin tamamının dosyaya yazılmış olduğundan emin olabiliriz. Aksi halde yukarıda bahsedilen durum gibi dosyaya yazılması beklenen herşey yazılmış olmayabilir.
fstream kütüphanesinde dosyaların kapatılması için close() fonksiyonu bulunur. Bir dosyanın hangi şekilde açıldığına bakılmaksızın (ekleme, yazma veya okuma) ve dosyanın tipine bakılmaksızın (metin veya ikili dosya) bu fonksiyon kullanılabilir.
in.close();
veya out.close();
şeklinde dosya kapatılabilir.
Dosyalardan okuma ve yazma işlemleri
| Veri Tipi | Okuma fonksiyonları | Yazma fonksiyonları |
| char | get(); | put(); |
| Kelime (boşluğa, dosya sonuna yada satır sonuna kadar) | >> (yönlendirme operatörü) | << (yönlendirme) |
| Satır (dosya sonuna yada satır sonuna kadar) | getline(); | << (yönlendirme) |
| Nesne (struct veya object tipinde) | read(); | write(); |
| İkili dosya tipleri için | Yukarıdakilerin aynısı | Yukarıdakilerin aynısı |
Yukarıdaki tablodan okunmak veya yazılmak istenen veri tipine göre bir fonksiyon seçilerek kullanılabilir.
İlave Fonksiyonlar
Aşağıda pekçok zaman dosya işlemlerini kolaylaştıran bazı fonksiyonlar ve kullanım açıklamaları verilmiştir.
| İşlem | Fonksiyon | Açıklama |
| Dosya sonunu kontrol | eof() | Dosyadan okuma yapılırken dosyanın sonuna gelindiğinde true veya 1 değeri döndürür. |
| Herhangi bir işlemin hatalı olması. | bad() | Yazma veya okuma işlemleri sırasında bir işlemin herhangi bir sebeple gerçekleştirilememesi durumunda true veya 1 döndürür. |
| Dosya açık mı kontrolü | is_open() | Dosyanın açık olup olmadığını kontrol eder. Şayet açıksa true değilse false döndürür. |
| Okunan verinin miktarı | gcount(); | Dosya açıldıktan sonra şimdiye kadar dosyadan okunmuş olan verinin byte cinsinden değerini döndürür. |
| Karakter atlatma | igonore() | Verilen miktar kadar karakteri atlayarak sonrasından devam eder. Dosyadan okuma işlemi yapılırken belirli bir bilgiyi atlamak için kullanılabilir. |
| Sıradaki karakteri kontrol | peek(); | Sıradaki karakteri kontrol eder ama dosyada ilerlemez. Yani dosyadan okuma işlemi yapıldığında kalınan yerden devam eder ama peek fonksiyonu ile sıradaki karakter kontrol edilebilir. |
| Rastgele erişim (sadece ikili dosyalarda) | seekg();
seekp(); tellg(); tellp(); |
Fonksiyonların sonu g ile bitenler get (Almak) sonu p ile bitenler ise put(Atamak) için kullanılır. Basitçe dosyanın belirli bir konumuna gitmek veya mevcut konumunu öğrenmek için kullanılırlar. |
Bir aile varmış. Çocuklarından birisi resim hayranıymış. Bu yüzden kendi yaptığı tabloları Picasso’nun tablosu diye milyarlarca paraya satılıyormuş. Aradan zaman geçmiş. Çocuğun dükkanını polis basmış. Hapse girmiş.
Bir çocuk ise kendi notalarını Beethoven’in eserleri diye satıyormuş. Yine basılmış hapse girmiş. Aralarında birisi kopya program yapıyormuş arkadaşıyla. Yine basılmış. Yine aynı şey.
Bir çocuğu ise sahte makyaj malzemeleri yapıp satmış. Yine hapse girmiş. Ailenin babası sporcuymuş. O da çelme takmış. Hapse girmiş. Tek anne kalmış. Polis gelmiş. Tek kalmak yasak demiş.
Ve o da hapse girmiş.
Dördüncü sınıfta yazdığım iğrenç hikaye için alkış istiyorum.
© 2005 – 2009 wolkanca. Bu yazi blog.wolkanca.com adresinde yazildi, sitenin yazilari yalnizca izin alinmak kaydi ile alinti yapilabilir ve yayinlanabilir.
Diyelim ki, mesai saati bitti ve siz de akşam 18:30 civarında, alışılmadık derecede zorlu bir iş gününün ardından (tabii ki tek başınıza) arabanıza binip evin yolunu tuttunuz. Çok yorgunsunuz ve canınız da fena halde sıkkın ve sinirli bir haldesiniz.
Birdenbire göğsünüzde, kolunuza ve çenenize doğru yayılmaya başlayan korkunç bir ağrı hissediyorsunuz. En yakın hastaneye sadece on dakikalık mesafedesiniz ama hastaneye ulaşmayı başarıp başaramayacağınızdan bile emin değilsiniz.
Ne yapacaksınız?
İlk yardim kurslarına katılacak kadar akli başında biriydiniz ama kurstaki eğitmen, sizin başınıza bir şey geldiğinde ne yapacağınızı öğretmedi!
Yalnız başınızayken kalp krizi geçirirseniz nasıl hayatta kalırsınız?
Pek çok insan kalp krizi geçirdiği sırada tek başına oluyor; etrafta yardim edecek kimse bulunmuyor. Kalp atışları düzensizleşen ve kendisini bayılacakmış gibi hisseden birinin bilincini yitirmeden önce yalnızca 10 saniye kadar zamanı vardır. Bu durumda ne yapmanız gerekir?
Cevap:
Paniğe kapılmadan üst üste kuvvetlice öksürmeye başlayın.
Arabanızı sağa çekin motoru durdurup dörtlüleri yakin arabanın arkasına geçip sırt üstü yere yatın ayaklarınızı arabanızın bagajına doğru yukarı kaldırın ve öksürmeye başlayın öksürmeden önce her seferinde derin bir nefes alin; öksürükleriniz güçlü olsun, derinden gelsin ve uzun sürsün, tıpkı göğsünüzde birikmiş balgamı atmaya çalışır gibi öksürün.
Her iki saniyede bir derin nefes alıp öksürün ve bunu ya yardim gelene dek yada kalp atışlarınız tekrar normale dönene dek sürekli yapın. Sakin arabanızın içinde oturmayın bu esnada sizi gören insanlar yardim edeceklerdir.
Lütfen bu konuda mümkün olduğunca çok kişiyi bilgilendirin. Bu bilgi sayısız insanin hayatini kurtarabilir! Asla, "benim başıma gelmez!" diye düşünmeyin. Hayat tarzımızın epeyce değiştiği şu son yıllarda artik her yaşta insan kalp krizi geçiriyor. Gerçek bir dost olduğunuzu gösterip bu makaleyi tanıdığınız herkese yollayın.
© 2005 – 2009 wolkanca. Bu yazi blog.wolkanca.com adresinde yazildi, sitenin yazilari yalnizca izin alinmak kaydi ile alinti yapilabilir ve yayinlanabilir.
Arkadaşlar yüzlerce mail ve mesaj var bana gönderilen hosting yani barındırma servisi için öneri sorulmuş.
Öncelikle çok eskilerden beri Türkiye’de hostbul.net adresinde yayın yapan bir web sitesi var, bu site de kullanıcılar kullandıkları hosting firmalarını yorumluyorlar onlara puan veriyorlar, ayrıca çeşitli fırsat paketleri vs. var. Bu siteyi bir kolaçan ediniz fikir sahibi olunuz. Yine buna benzer, bu konseptte yabancı internet siteleri de mevcut bolca, onları da imkanınız ve vaktiniz varsa gezin dolaşın. Ayrıca bu konularda deneyim çok önemlidir, satın almadan önce mutlaka o firma hakkında güvenilir kaynaklardan yorum, bilgi alınız.
Bana çokça sorulmasındaki neden sanırım bu sitenin uzun süredir sorunsuz yayında olması. Şu bir gerçek ki bu blog sitesi Wordpress alt yapısını kullanıyor olmasının yanı sıra birçok ekstradan işlevlerle dolu, bunlar bizzat kendi çalışmalarım. Yani çıkıp da aman efendim wordpress kurmuş takılıyor başka numara yok diyen insanlara inanmayın. Wordpress blog platformunun ilk sürümünden şimdikine kadar tümünü denemiş kullanmış biri olarak hala şunu diyebilirim ki bu hazır sistemler her zaman onu kullanacak kişi/kurum tarafından tamamen gözden geçirilmelidir ki zaten açık kaynak olduğu için bunu yapmakta hiç bir sıkıntı yok.
Hosting servisine gelecek olursam, şimdiye kadar ki tecrübelerime göre eğer paranız çok değilse ve aklınız da az değilse, eğer kurumsal bir şirket de değilseniz Türkiye’den bu hizmeti almayınız. Amatör veya gelişmeye açık yeni bir iş yapacaksanız mutlaka ABD kaynaklı isimli bir yerden bu hizmeti alın, isimli den kastım tavsiye edilen ve çokça kullanılan firmaları tercih etmekten bahsediyorum. Bunun yanında WordPress, Joomla veya Durpal ya da benzer içerik sistemlerini kullanacaksanız bu sistemleri gerçekten tanıyan firmaları seçin, hatta almadan önce(Türkiye’den alacaksanız) firmaya direk sorun bunu biliyorlarsa onlara bir puan verin bilmiyorlarsa hiç bulaşmayın derim.
Çoğunlukla karşılaştığım durumlar ve bana gelen mesajlarda Türkiye’deki hosting firmalarından almış arkadaşlar ve onlara fazla trafik tükettiğiniz için vb. gibi isimlerle fazladan fatura kesiyorlar para alıyorlar. Bu Türkiye’de malesef bir gerçek, sanıyorum bu firmalar parayı ancak bu şekilde kazanabiliyorlar acı ama gerçek.
Benim tavsiye ettiğim firmalar Wordpress.Org’un tavsiye ettikleri ile aynı, yani öncelikle DreamHost, MediaTemple olmak üzere diğer tavsiye ettikleri firmalara babanızdan daha fazla güvenebilirsiniz. Bu firmaların hizmetlerinde ortak özelliklerinden birkaçı şöyledir; trafik(bandwidth)ler neredeyse sınırsız ve gerçekten sınırsızdır, verdikleri alan(disk storage) neredeyse sınırsız veya sınırsızdır, alan adı(domain) barındırma sayısı neredeyse sınırsız veya sınırsızdır ve hepsi bit tıklamada Wordpress, Durpal vb. içerik sistemlerini kurabilen sistemlere sahiptirler. Ayrıca yedekleme, veritabanı vs. aklınıza gelecek tüm konularda ileridirler. En önemlisi ise ABD deki bir firmaya Türkiye’deki ben hosting firmasıyım diyen bir firmadan daha kolay ulaşıp sorununuzu çözeceğinize emin olabilirsiniz.
Dreamhost’dan alacaksanız promo code(promosyon kodu) kısmına “wolkanca” yazın %50 kadar indirim alabilirsiniz ayrıca. Başka indirim kodları da var bu standart bir uygulama ama bazı indirim kodları daha az bazıları daha çok indirim sağlayabiliyor.
Tüm bu yazdıklarımı tecrübelerimle yazdığımı tekrar belirtmek isterim, bana hosting konusunda yazan arkadaşlara artık bu yazının bağlantısını göndereceğim, alın size bir blogunuzun olmasının güzel bir yönü daha.
© 2005 – 2009 wolkanca. Bu yazi blog.wolkanca.com adresinde yazildi, sitenin yazilari yalnizca izin alinmak kaydi ile alinti yapilabilir ve yayinlanabilir.
“Bu dünya bir rüyadır” der Hz Mevlana; “Öldüğümüzde uyanırız.” Aynı düşüncenin latincesi La Vida Es Sueno olarak düşer kayıtlara; hayat bir düştür…
Bu dünyayı bir sınav yeri olarak görmek, idealar dünyasının yansıması olarak görmek, rüyaların gerçek olduğunu savunmak belki de bu dünyada nefsi terbiye edebilmek içindir. Yine de bu alandaki düşünsel üretim sanatı da etkilemiştir. Yaşananların rüya, rüyaların ise gerçek olması ihtimali edebiyattan sinemaya hemen hemen her sanat dalında kullanılan bir tema olmuştur. Bu önermenin üzerine sinema alanında inşaa edilen Matrix filmi örneğin, aslında insanlığın yüz yıllardır tartıştığı pekçok şeyin başarılı bir kolajıdır.

Korku filmleri de bu önermeden ziyadesiyle beslenmiş ve beslenmeye de devam etmekte: Elm Sokağı Kabusu- Fredy Krueger’ da işte bu alandaki kült filmlerden.
Wes Craven tarafından yazılan ve yönetilen serinin ilk film, 1984 tarihini taşıyor. Film Johnny Deep’in ilk sinema deneyimi olması açısından da hayranları için başka bir önem taşırken, Robert Englund dışında John Saxon, Heather Langenkamp, Roone Blakley, Amanda Wyss, Jsu Garcia, diğer rolleri başarıyla paylaştılar.
bu yazı sahaf1976 tarafından sinepil.org adresli sitede yayımlanmak üzere yazılmıştır. kaynak gösterilmeksizin kopyalanamaz.
etiketler: robert englund, 2010, johny depp, jackie earle haley, elm sokağı kabusu, a nightmare on elm street, freddy krueger
Aşağı yukarı bir haftadır fazla süregelen revizyon çalışmamızdan sonra an itibariyle blogumuzu tekrar yayına geçirdik. Blogumuzda irili ufaklı 40 adet değişiklik gerçekleştirdik. Bu değişikliklerin bazılarını hemen farkedebileceğiniz türde olurken, bazıları ise daha çok işin mutfağında farkedilen, yani biz yazarların görebileceği ve kullanabileceği değişiklikler oldu. Ayrıca bahsetmeden duramayacağım; bu yazının sonunda da okuyabileceğiniz üzere sizler için küçük bir sürpriz yaptık. Ama durun! Acele etmeyin. Size belli başlı yeniliklerden bahsedeyim.
Eğer siz de bizim gibi sinema ile ilgili bir bloga sahipseniz karşılıklı olarak bağlantı değişimi yapabiliriz. Bunun için bizimle iletişime geçmeniz yeterli. Öte yandan herhangi bir konuda bir bloga sahipseniz bizi desteklemek adına da blogunuzda bize bağlantı sağlayabilirsiniz. Buna kesinlikle hayır demeyiz ve bunun için şimdiden size teşekkür ederiz.
Blogumuzda herhangi bir hata ile karşılaşmanız durumunda bizimle iletişime geçebilirsiniz. Aynı zamanda blogumuz hakkında yapıcı eleştirilerinizi bu yazıya yorum olarak yazabilirsiniz.
Blogumuzun tekrar açılışı nedeniyle siz okuyucularımıza küçük bir sürpriz yapmayı düşündük ve bir kişiye bir adet DVD filmi hediye etmek istiyoruz.
Hediyemizi kazanmanız için yapmanız gereken tek şey sinemalardan.com’daki yazımızda yer alan soruyu doğru cevaplandırmak.
Sorumuzu doğru bilenler arasında yapacağımız çekiliş sonucunda DVD’yi kazanan kişiyi 1 hafta sonra açıklayacağız. İyi şanslar!
Bu yazı Fatih Turan tarafından 22 Şubat 2009 23:21 tarihinde yazıldı. 6 yorum var.
Bütün işlerimizde olduğu gibi web projelerini geliştirirken de belli bir düzen dahilinde çalışmak verimliliği arttıran önemli unsurlardan biridir. Herkesin kendine özgü bir düzeni bulunmakta ve kimi zaman kendimize göre en iyi düzeni yakalamak çok uzun zaman alabiliyor. Hatta bana göre bu süreç durağan bir süreç değil. Çünkü devamlı daha iyi bir düzen seviyesi yakalamak istiyoruz.
Şahsen ben öyleyim. Devamlı olarak yeni yöntemler keşfederek mevcut düzenimi daha iyiye yönelik geliştiriyorum. Yani şimdiki yöntemimi belkide bir dahaki yıl daha farklı bir biçimde kullanmış olacağım.
Yine de bu yazımda hali hazırda kullanıyor olduğum mevcut geliştirme düzenimi sizinle paylaşmam yerinde olacağını düşünüyorum.
Klasör yapısı web projelerindeki düzeni oluşturmamızı sağlayan önemli etkenlerden biridir. Klasör yapısı ne kadar karmaşık olursa projelerimizi geliştirmek bir o kadar zor olacaktır. Hele bir de ofis çatısında takım olarak çalışıyorsanız işler iyice karmaşık bir hal alabilir. Bu sebepten dolayı takımınızın benimseyeceği, ortak olarak kullanabileceğiniz, akıllı bir şekilde standart klasör yapısını oluşturmanız iyi olacaktır.
Web projelerinde benim oluşturduğum ve kullanıyor olduğum klasör yapım ve açıklamaları aşağıda yer almakta:

Klasör isimlerini İngilizce olarak oluşturdum çünkü XHTML KITCHEN‘da artık yabancılara da hizmet vermeyi planlıyoruz. Siz kendi ihtiyaçlarınıza göre klasör isimlerini Türkçe’de yazabilirsiniz.
İsterseniz yukarıdaki klasör yapısını şablon olarak indirip siz de kendi çalışmalarınızda kullanabilirsiniz.
Projelerimizdeki klasör yapısının düzenli olmasının yanısıra dosyalarınızın da düzenli olması tutarlılık ve verimlilik açısından gayet önemli. Bunun için xHTML ve CSS dosyalarınız için size ayrı başlıklar altında tavsiyelerde bulunacağım.
<!--YORUM--> ile gruplandırın.id ve class verirken mantıklı bir isimlendirme yöntemi ile verin. Ben ecnebilerin CamelCase diye tabir ettikleri türde kelimeleri birleşik yazıyorum. Örneğin: <div id="mainContent"></div>. Bunun yanısıra alt çizgi ve tire ile de isimlendirme yapabilirsiniz (yani _ ve - karakteri ile). Örneğin: <div id="main_content"></div> veya <div id="main-content"></div>.Unutmadan örnek olarak hazırladığım xHTML dosyasının kodunu inceleyebilir ve üstteki tavsiyelerle karşılaştırma yapabilirsiniz.
div#header { ... }. Böylece bu kodun xHTML dosyasında hangi etiket için yazılmış olduğunu kolayca görüp anlayabileceğiz.Yine örnek olarak hazırladığım CSS dosyasını inceleyebilir ve üstteki tavsiyelerle karşılaştırma yapabilirsiniz.
Benim bilmediğim ve burada yazmadığım, sizin bildiğiniz bu tip güzel tavsiyeleriniz varsa onu yorum yazıp bu yazıya katkıda bulunabilirsiniz.
Bu yazı Fatih Turan tarafından 07 Kasım 2008 22:31 tarihinde yazıldı. 19 yorum var.
Google Maps API ile ilgili bu yazıyı ne zamandır yazmayı düşünüyordum. Ama geçen gün Nettuts adlı sitede benden önce Google Maps API ile ilgili bir yazı yazmışlar. Yazının başlığını Google Reader’da gördüğümde “Tüh!” diyerek hayıflandım. E ne demişler: “Atamayana atarlar!”, pardon “Yazamassan yazarlar!”. xD
Yine de ben kendi blogumda Google Maps API hakkında yazı yazmak istedim. Ne de olsa herkes İngilizce’den anlamıyor. Hem Türkçe kaynak da az bu tür konularla ilgili. Yani bu yazı Nettuts’daki yazının çevirisi olmayacak.

Google’ın interaktif harita servisini yani Google Maps‘ı biliyorsunuzdur. İşte Google Maps API ile de kendi web sitemize veya web uygulamamıza Javascript aracılığıyla etkileşimli harita uygulamalarını yerleştirebiliyoruz.
Google Maps API‘nin o kadar gelişmiş özellikleri var ki insan Google Maps API Demo Galerisindeki örneklere bakınca aklı bitiyor.
Kısacası Google Maps API ile basit haritaların yanısıra gelişmiş özelliklere sahip harita uygulamaları da oluşturabiliyoruz.
Kurulum için ilk önce Google Maps API üyelik sayfasından haritayı kullanacağımız alan adına özgü anahtar almamız gerekiyor. Bu anahtar ile haritamız sadece üye olurkenki yazdığımız alan adında çalışacaktır. Aynı anahtar ile başka bir alan adında harita uygulamanız çalışmayacak. Farklı alan adlarında da Google Maps API’yi kullanmak istiyorsanız her farklı alan adı için yeni bir anahtar almanız gerekiyor.

Ben örnek için yukarıdaki ekran görüntüsündeki gibi kendi alan adıma ait bir API anahtarı aldım. Üye olduktan sonra aşağıdaki gibi anahtarınızı, hangi alan adı için aldığınızı ve bir de kullanımına dair küçük bir örnek veriyor.

Anahtarımızı aldığımıza göre haritamızı sayfamıza entegre edebiliriz. Şimdi bunun için aşağıda bir örnek hazırladım. Eğer isterseniz örneği direkt olarak bilgisayarınızda indirip inceleyebilirsiniz. Örneği inceledikten sonra kodlara dair açıklamaları okuyabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Google Maps API Örneği</title> <!--META--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="description" content="Google Maps API Örneği" /> <meta name="author" content="Fatih Turan" /> <meta name="robots" content="index,follow" /> <meta http-equiv="imagetoolbar" content="no" /> <meta http-equiv="content-language" content="tr-TR" /> <!--/META--> <!--STYLES--> <style type="text/css" media="screen"> * { margin:0; padding:0 } div#map { width:500px; height:500px } </style> <!--/STYLES--> <!--SCRIPTS--> <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAApJ4fZWusAp4s0nPrMcxM0xRWK7WhrfsCEgcYY7INOmv0f1t97hTy6mNriyUhaj8OkidWbtIeb_t6hA" type="text/javascript"></script> <script type="text/javascript"> function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(41.02407481503792, 40.52083969116211), 14); } } </script> <!--/SCRIPTS--> </head> <body onload="load()" onunload="GUnload()"> <div id="map"> <noscript><img src="rize.png" alt="Rize" /></noscript> </div> </body> </html> |
div‘in boyutunu ayarladım.key adlı değişkene giriyoruz.div elementi üstünde haritayı göstermek istiyorsak onun id’sini yazıyoruz. Ben örnekte map olarak belirledim.load() fonksiyonunu, sayfadan çıktığımızda bellek sızıntısı oluşmaması için de GUnload() adlı fonksiyonu çağırdım.div elementi olarak tanımladım.noscript etiketinden yararlandım. Siz de bu görseli klavyenizden Print Screen tuşu ile alabilirsiniz.Üstte yer alan maddelerdeki sonuncusunda dile getirdiğim tarayıcıdaki Javascript’in kapalı olma durumunda statik görsel yerleştirme yöntemi yerine yeni farkettiğim daha iyi bir yöntem olan Google Static Maps API‘yi kullanabilirsiniz. Bu konu ile ilgili ayrıntıları daha sonra ayrı bir yazı ile açıklamayı düşünüyorum.
Nihayet haritamız kullanım için hazır. Az önce tek tek açıklamasını yazdığım örneği şimdi canlı olarak görebilirsiniz.
Ayrıca Google Maps API ile ilgili bir tane daha yazı yazmayı düşünüyorum. Oluşturduğumuz haritayı nasıl daha fazla özelleştirebileceğimize dair bilgiler vereceğim. Şimdilik Google Maps API ile ilgili belgeleri, örnekleri ve uygulamaları incelemenizi tavsiye ediyorum.
Bu yazı Fatih Turan tarafından 21 Ekim 2008 17:07 tarihinde yazıldı. 23 yorum var.
Web tasarımcılığı veya web geliştiriciliğine yeni başlayan hemen hemen herkes Dreamweaver veya benzer tarzda WYSIWYG (Türkçesiyle “Ne görüyorsanız onu alırsınız”) tipindeki editörler ile tablo etiketlerini kullanarak (veya kullanmayarak), adeta suya sabuna dokunmadan, yani kodlara bulaşmadan, programdaki komutlarla anında görüp, düzeltme ve değişiklik yapıp web sayfalarını inşa etmeye çalışmışlardır.
Şahsen ben bu şekilde web sayfalarımızı geliştirmememiz gerektiğini düşünüyorum. Çünkü:
Kısacası web sayfalarını kodlarken WYSIWYG tarzı editörler kullanmayalım. Web sayfalarını kodlarken hangi etiketin, hangi kodun ne işe yaradığını öğrenelim (bunun için Sitepoint‘in çevirimiçi xHTML referansı ve CSS referansı kesinlikle işinize yarayabilir), ezbere gitmeyelim ve tabii ki web sayfalarımızı elle kodlayalım. Bu sayede orta ve uzun vadede siz kazanacaksınız.
Bu yazı Fatih Turan tarafından 31 Ekim 2008 01:01 tarihinde yazıldı. 33 yorum var.